ข้ามไปที่เนื้อหาหลัก

[SQL SERVER] Select แล้ว Order by ให้ค่า Null อยู่ด้านล่าง

เฮ้ย ทำไมทำ Order  by แล้ว Null ขึ้นมาอยู่ด้านบน
อยากจะเอาไว้ข้างล่าง เขียนยังไงหว่า....

ทำได้ หลายแบบ
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)
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  


*****************************************************
ขอขอบคุณ เดนิส

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เชื่อมเหล็กฉุกเฉิน ใช้แค่แบต2ลูกกับสายพ่วงแบต และเหล็กเชื่อม

เอามาฝากครับ จากเว็บท่องไพรนะครับ น่าสนใจดี เผื่อฉุกเฉิน ใครจะคิดบ้างว่า "แบตเตอรี่รถยนต์" จะมีประโยชน์ใช้สอยที่มากกว่าการเป็นแหล่งเก็บพลังงานไฟฟ้าและต้นกำเนิด ไฟฟ้าที่ไว้ใช้ในรถยนต์ วันนี้อยากจะขอนำเสนอความอเนกประสงค์ของแบตเตอรี่อีกรูปแบบหนึ่งในการนำมา ประ ยุกต์ใช้เป็นเครื่องเชื่อมไฟฟ้า เผื่อยามว่างอยากจะซ่อมเชื่อมเครื่องใช้ในภายในบ้าน หรือกับการซ่อมแซมรถก็สามา- รถ ทำได้ด้วยตนเอง 1. พระเอกของฉบับนี้ แบตเตอรี่อย่างน้อย 2 ลูก สำหรับ เป็นแหล่งกำเนิดกระแสไฟ    2. สายพ่วงแบตเตอรี่ อันนี้อาจหาหยิบยืมเพื่อน บ้านมาใช้ก่อนก็ได้ (ใช้เสร็จแล้วอย่าลืมคืน) ควรมีสัก 3 เส้น สำหรับการใช้ทำเครื่องเชื่อมเหล็ก     3. อันนี้เพื่อการจำ ไม่ให้สับสนเกี่ยวกับขั้วของแบตเตอรี่ ตามหลักสากลแล้วสายไฟของขั้วลบ หรือสายกราวนด์ จะใช้สีดำแทนขั้ว ทั้งนี้ เพื่อป้องกันการสับสน ส่วนสายสีอื่นให้ใช้แทนขั้วบวกได้ จะได้ไม่สับสน 4. อันนี้เขาเรียกว่าลวดเชื่อมแบบไฟฟ้า ลักษณะคล้ายธูป ที่เราใช้ไหว้พระ ข้อแตกต่างระหว่างลวดเชื่อม แบบใช้ แก๊สและไฟฟ้าคือ ลวดเชื่อมแบบใช้แก๊สจะเป็นลวดโลหะ ที่ไม่มีการเคลื...

[SQL SERVER] ตัด 0 นำหน้าในตัวแปร Varchar

ตัด 0 นำหน้าในตัวแปร Varchar ผมได้เจอปัญหาว่าบางครั้งการแปลงข้อมูลตัวเลขเช่นเดือน Month = ‘02’ เมื่อต้องการเอามาใช้งานหรือเข้าสูตรต่อ โดยให้ Type Varchar เช่นเดิมนั้นเกิดปัญหา เพราะแหล่งข้อมูลที่เข้ามามีทั้ง ‘04’ และ ‘4’ ไปเจอที่ http://blog.sqlauthority.com/ 2012/11/19/ sql-server-removing-leading-zeros-from-column-in-table/ ของตาพิเนา....ตามนี้ ******************************************************** Code:             SUBSTRING ( ชื่อ Cloumn ,   PATINDEX ( '%[^0 ]%' ,   ชื่อ Cloumn +   ' ' ),   LEN ( ชื่อ Cloumn )) ******************************************************** ตัวอย่าง : USE   tempdb GO -- Create sample table CREATE TABLE   Table1   ( Col1   VARCHAR ( 100 )) INSERT INTO   Table1   ( Col1 ) SELECT   '0001' UNION   ALL SELECT   '000100' UNION   ALL SELECT   '100100' UNION   ALL SELECT   '000 0001' ...

[C# .net WinApp] Solved error : An error occurred during local report processing

C# .net 4.0 rdlc report   Solved error : An error occurred during local report processing พบปัญหาเมื่อ run rdlc report แล้ว Error ตามด้านบน ที่ผมเจอคือ เมื่อ Run debug ไม่พบ Error แต่พอ publish ออกมากลับ Error แก้ไขโดย 1. ไปที่ ไฟล์ .rdlc report ของเรา คลิ๊กขวา Properties   ที่ Build Action: เปลี่ยนจาก Embedded Resource เป็น Content ลอง publish แล้วทดสอบดูอีกครั้งครับ