ทำไมเมื่อเรามีค่า NULL ในคอลัมน์และเราเรียงตามค่าจากน้อยไปมาก NULL จะถูกเรียงลำดับก่อน
select 1 as test
union all
select 2
union all
select NULL
union all
select 3
union all
select 4
order by test
ผลลัพธ์ใน
NULL
1
2
3
4
ฉันคิดว่า NULL หมายถึง "ไม่ทราบแน่ชัด" หรือเป็นไปได้ "ไม่ทราบ" หากเป็นจริงพวกเขาจะไม่เรียงลำดับล่าสุดเนื่องจากค่าอาจมากกว่าค่าอื่น ๆ ทั้งหมดหรือไม่ (หรือนี่เป็นตัวเลือกการจัดเรียงที่อื่น)
ฉันใช้ SQL Server 2008R2 แต่ฉันสงสัยว่านี่เป็นความจริงในทุกเซิร์ฟเวอร์ SQL และอาจเป็นไปได้ใน RDBMS ทั้งหมด
desc
สั่งซื้อเพื่อแสดงสิ่งที่ยิ่งใหญ่ที่สุดหรือล่าสุดซึ่งในกรณีนี้ฉันยินดีที่จะให้สิ่งที่ไม่สิ้นสุด