1 دقیقه میانگین مدت زمان مطالعه است

گاهی مواقع نیاز است که خروجی کوئری شما با توجه به شرایط مختلف ترتیب متفاوتی داشته باشید. بطور مثال فرض کنید می‌خواهید لیست سفارشات بورس بر روی یک قسمت خاص را نشان بدهید، بصورت پیش‌فرض رعایت ترتیب زمانی کافی است اما شما می‌خواهید نوع کاربر ثبت کننده سفارش را هم در ترتیب سفارش تاثیر بدهید که اگر بازارگردان بود اولویت کمتری داشته باشد و در انتها لیست نشان داده شود.
در این مواقع می‌توانید از کوئری شبیه کد زیر استفاده کنید:

    SELECT NumberCode,
           Quantity,
           OrderTime,
           AccountType
    FROM dbo.[Order]
    WHERE Side = @sideCode
      AND InstrumentCode = @instrumentCode
      AND Price = @price
    ORDER BY CASE AccountType
                 WHEN 5 THEN 0
                 WHEN 6 THEN 2
                 ELSE 1
                 END, OrderTime;

در کد بالا اولویت کاربر با کد 5 را بالاتر از بقیه قرار داده‌ایم تا بالاتر از بقیه نشان داده شود، سپس کاربر با کد 6 را در انتها نشان می‌دهیم و در وسط هم کاربران با کد دیگر هستند.
بقیه موارد و همچنین موارد با کد یکسان هم بر اساس OrderTime مرتب می‌شوند.
نمونه خروجی:

38,1960,2022-07-13 11:41:32.9664630,5
36,1960,2022-07-13 11:40:32.9664630,1
40,10000,2022-07-13 11:42:08.8030760,1
41,10000,2022-07-13 11:42:14.8845340,1
20,100000,2022-07-13 11:38:11.7743590,6
255,14403,2022-07-13 12:16:49.7581740,6

Order By