خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نمایش اول برخی رکوردها در خروجی ORDER BY در SQL Server
با استفاده از دستور ORDER BY در SQL Server می توانید ترتیب نمایش رکوردها را تغییر دهید و به ترتیب نزولی یا صعودی آنها را نمایش دهید.
بعضا با شرایطی مواجه می شوید که علیرغم اینکه باید از دستور ORDER BY استفاده کنید، ولی برخی رکوردها در ابتدای Result set باید نمایش داده شوند.
برای این منظور مثالی داریم. ابتدا جدولی ایجاد کرده و تعداد رکورد در آن اضافه می کنیم.
سپس با دستور Select، رکوردهای اضافه شده در جدول را نمایش می دهیم و سپس با دستور ORDER BY ترتیب نمایش را نزولی می کنیم:
حالا دستور کمی تغییر می دهیم. با اینکه همچنان ORDER BY به صورت نزولی در اسکریپت وجود دارد، ولی مقادیر ClassName که برابر با D هستند، باید در ابتدای Result نمایش داده شوند.
حال اگر بخواهیم مقادیر ClassName که برابر با D و E هستند، در ابتدای Result نمایش داده شوند، بصورت زیر اسکریپت را تغییر می دهیم:
بعضا با شرایطی مواجه می شوید که علیرغم اینکه باید از دستور ORDER BY استفاده کنید، ولی برخی رکوردها در ابتدای Result set باید نمایش داده شوند.
برای این منظور مثالی داریم. ابتدا جدولی ایجاد کرده و تعداد رکورد در آن اضافه می کنیم.
CREATE TABLE tbl_Classes
(
ClassID INT PRIMARY KEY
,ClassName VARCHAR(10)
)
GO
INSERT INTO tbl_Classes
VALUES
(1,'A'),(2,'B'),(3,'C')
,(4,'D'),(5,'E'),(6,'F')
,(7,'G'),(8,'H'),(9,'I')
GO
سپس با دستور Select، رکوردهای اضافه شده در جدول را نمایش می دهیم و سپس با دستور ORDER BY ترتیب نمایش را نزولی می کنیم:
SELECT *
FROM tbl_Classes
ORDER BY ClassName DESC
ClassID ClassName
----------- ----------
9 I
8 H
7 G
6 F
5 E
4 D
3 C
2 B
1 A
حالا دستور کمی تغییر می دهیم. با اینکه همچنان ORDER BY به صورت نزولی در اسکریپت وجود دارد، ولی مقادیر ClassName که برابر با D هستند، باید در ابتدای Result نمایش داده شوند.
SELECT *
FROM tbl_Classes
ORDER BY
CASE WHEN ClassName = 'D'
THEN 1
ELSE 2
END ,ClassName DESC
GO
ClassID ClassName
----------- ----------
4 D
9 I
8 H
7 G
6 F
5 E
3 C
2 B
1 A
حال اگر بخواهیم مقادیر ClassName که برابر با D و E هستند، در ابتدای Result نمایش داده شوند، بصورت زیر اسکریپت را تغییر می دهیم:
SELECT *
FROM tbl_Classes
ORDER BY
CASE WHEN ClassName IN ('D','E')
THEN 1
ELSE 2
END ,ClassName DESC
GO
ClassID ClassName
----------- ----------
5 E
4 D
9 I
8 H
7 G
6 F
3 C
2 B
1 A
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: