यदि आपका इंजन अनुमति देता है ORDER BY x IS NULL, x
या ORDER BY x NULLS LAST
इसका उपयोग करता है। लेकिन अगर यह इन मदद नहीं करता है:
यदि आप एक संख्यात्मक प्रकार से छँटाई कर रहे हैं तो आप ऐसा कर सकते हैं: ( दूसरे उत्तर से स्कीमा को उधार लेना ।)
SELECT *
FROM Employees
ORDER BY ISNULL(DepartmentId*0,1), DepartmentId;
कोई भी गैर-शून्य संख्या 0 हो जाती है, और नल 1 हो जाते हैं, जो अंतिम रूप से अशक्त हो जाते हैं।
आप इसे स्ट्रिंग्स के लिए भी कर सकते हैं:
SELECT *
FROM Employees
ORDER BY ISNULL(LEFT(LastName,0),'a'), LastName
क्योंकि 'a'
> ''
।
यह भी तारीखों के साथ काम करता है एक अशक्त int के लिए और ऊपर ints के लिए विधि का उपयोग करके:
SELECT *
FROM Employees
ORDER BY ISNULL(CONVERT(INT, HireDate)*0, 1), HireDate
(आइए दिखाते हैं कि स्कीमा में HireDate है।)
ये विधियाँ डेटा प्रकार (और अधिकतम) में परिवर्तन (दोनों अन्य समस्याएँ जो अन्य ISNULL समाधान पीड़ित हैं) के साथ आने वाले प्रश्नों के "अधिकतम" मान के साथ आने या उन्हें ठीक करने के मुद्दे से बचती हैं। इसके अलावा वे एक मामले से बहुत कम हैं।