เฮ้ย
ทำไมทำ Order
by แล้ว Null ขึ้นมาอยู่ด้านบน
อยากจะเอาไว้ข้างล่าง เขียนยังไงหว่า....
อยากจะเอาไว้ข้างล่าง เขียนยังไงหว่า....
ทำได้
หลายแบบ
1. รู้ว่าค่ามากสุด คืออะไร
1. รู้ว่าค่ามากสุด คืออะไร
ORDER
BY COALESCE(Col,'9999-12-31 23:59:59.997')
--COALESCE คือ Function ที่จะแทนที
Empty หรือ NULL ด้วยข้อมูลที่เรากำหนดไว้
--'9999-12-31 23:59:59.997' คือ
ค่า Max Value ของ Column ของคุณ
-- Col คือชื่อ Column ของคุณ
2.ไม่รู้ว่าค่ามากสุดคืออะไร
CASE
WHEN Col Is NULL Then 1 Else 0 End, Col
-- Col คือชื่อ Column ของคุณ
ลองดูตัวอย่าง อันนี้
*****************************************************
Code:
--Create Temp Table
DECLARE @Temp table(Col datetime)
DECLARE @Temp table(Col datetime)
INSERT INTO @Temp VALUES(getdate())
INSERT INTO @Temp VALUES('2007-10-19 09:54:03.730')
INSERT INTO @Temp VALUES('2006-10-19 09:54:03.730')
INSERT INTO @Temp VALUES('2005-10-19 09:54:03.730')
INSERT INTO @Temp VALUES('2006-10-19 09:54:03.730')
INSERT INTO @Temp VALUES('2004-10-19 09:54:03.730')
INSERT INTO @Temp VALUES(NULL)
INSERT INTO @Temp VALUES(NULL)
--Before
SELECT *
FROM @Temp
ORDER BY Col
--Method 1
SELECT *
FROM @Temp
ORDER BY COALESCE(Col,'9999-12-31 23:59:59.997')
--Method 2
SELECT *
FROM @Temp
ORDER
BY CASE WHEN Col Is
NULL Then 1 Else 0 End, Col
*****************************************************
ขอขอบคุณ
เดนิส
ความคิดเห็น
แสดงความคิดเห็น