اشتراک‌ها
بررسی Pythonnet

Pythonnet – A Simple Union of .NET Core and Python You’ll Love 

بررسی Pythonnet
نظرات مطالب
Blazor 5x - قسمت سوم - مبانی Razor
نکته‌ای در مورد تگ text

فرض کنید قصد دارید یک تصویر SVG را که به همراه متن است، نمایش دهید. نمایش متن در این حالت، توسط تگ text انجام می‌شود:
<text x="50" y="50">Some text</text>
اگر در این حالت برنامه را کامپایل کنیم، با خطای زیر مواجه می‌شویم:
"<text>" and "</text>" tags cannot contain attributes
علت اینجا است که در دستور زبان Razor، واژه‌ی text، یک واژه‌ی کلیدی است و هدف آن، جدا کردن یک قطعه‌ی متنی، از قسمتی از کد #C نوشته شده‌ی در فایل‌های razor است. هدف اصلی آن، تعیین مرزی بین کد #C و یک متن خالص است. به همین جهت است که عنوان می‌کند، تگ text نمی‌تواند دارای attributes باشد. برای رفع این مشکل، روش escape کردن آن، قرار دادن این تگ مخصوص SVG، داخل یک تگ text دیگر است:
<text>
  <!-- Here are your actual Text tags -->
  <text x="50" y="50">Some text</text>  
</text>
نظرات مطالب
آشنایی با Window Function ها در SQL Server بخش چهارم
ممنون از شما، من مطالب بخش اول رو مطالعه کردم.
عبارت RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING به معنای تمام سطرهای جدول هست دیگه درسته. یعنی تمام سطرهای جدول از اولین گرفته، جاری گرفته و آخرین رو پوشش میده.

با این توضیحات باید دو کوئری زیر اینبار جواب یکسانی بدهند:
SELECT s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty,
       FIRST_VALUE(SalesOrderDetailID) OVER (PARTITION BY SalesOrderID
       ORDER BY SalesOrderDetailID RANGE BETWEEN UNBOUNDED PRECEDING  AND UNBOUNDED FOLLOWING)  LstValue
FROM Test_First_Last_Value s
     WHERE SalesOrderID IN (43670, 43669, 43667, 43663)
     ORDER BY s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty
     
SELECT s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty,
       LAST_VALUE(SalesOrderDetailID) OVER (PARTITION BY SalesOrderID
       ORDER BY SalesOrderDetailID DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)  LstValue
FROM Test_First_Last_Value s
     WHERE SalesOrderID IN (43670, 43669, 43667, 43663)
     ORDER BY s.SalesOrderID,s.SalesOrderDetailID,s.OrderQty

دو کوئری کاملا یکسان هستند به غیر از اینکه در کوئری دوم یک DESC اضافه شده و نام تابع از first به last تغییر کرده است.