টেবিলের শেষে নূন্য মানগুলি বাছাই করুন


95

NULLনির্বাচিত টেবিলের শেষে ক্ষেত্রগুলিতে মানগুলি সহ সারিগুলি বাছাই করার জন্য PostgreSQL এর সাথে কি কোনও উপায় আছে ?

পছন্দ:

SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END

উত্তর:


171

প্রথম সব, শূন্য মান হয় ডিফল্ট গত সাজানো আরোহী অর্ডার। আপনাকে অতিরিক্ত কিছু করতে হবে না।

সমস্যাটি অবতরণী আদেশের জন্য প্রযোজ্য , যা নিখুঁত বিপরীত এবং এভাবে প্রথমে নূন্যমূল্যকে সাজায়। সমাধান @Mosty সরু আউট সঙ্গে চালু করা হয় পোস্টগ্রি 8.3 :

ORDER BY somevalue DESC NULLS LAST

জন্য পোস্টগ্রি 8.2 এবং এই আদর্শ SQL বৈশিষ্ট্যটি আপনাকে প্রতিস্থাপন করতে পারেন ছাড়া পুরোনো বা অন্যান্য RDBMS:

ORDER BY (somevalue IS NULL), somevalue DESC

FALSEআগে যেমন সাজানো হয় TRUE, তাই উপরের উদাহরণের মতো নুল মানগুলি সর্বশেষে আসে।

সম্পর্কিত পরবর্তী উত্তর:


4
আইএমএইচও বেশিরভাগ বাস্তব বিশ্বের অ্যাপ্লিকেশনগুলিতে আপনি নাল মান চান না কেন আদেশ যাই হোক না কেন। উদাহরণস্বরূপ anচ্ছিক টাইমস্ট্যাম্প, ফার্স্টনাম, লাস্টনেম, ... এ ডিইএসসি বাছাই করা আমার পক্ষে মনে হয়, যদিও গাণিতিকভাবে ডিইএসসি অর্ডারটি ASC এর বিপরীত বলে মনে হয় যদিও তা মনে হয় suspect নালগুলি কেবল তাদের নিজস্ব একটি বিভাগে থাকতে হবে এবং এএসসি, ডিইএসসি দ্বারা প্রভাবিত হওয়া উচিত নয় এবং সর্বদা শেষ করা উচিত, এটি আরও ভাল ডিফল্ট হত।
ক্রিস্টোফ রাউসি 24:38

এটি সূচকগুলিকে প্রভাবিত করতে পারে যদি তারা DESC হয় সম্ভবত আপনি এটি সম্পর্কে একটি নোট যুক্ত করতে পারেন? postgresql.org/message-id/…
ক্রিস্টোফ রুসি

@ ক্রিস্টোফেরউসি: উপরের লিঙ্কিত উত্তরে বাছাই ক্রমের সাথে সূচকগুলি স্পর্শ করা হয়েছে।
এরউইন ব্র্যান্ডসটেটার

4
ব্যক্তিগতভাবে আমি মনে করি ডিফল্টটি এর বিপরীত হওয়া উচিত: নুলগুলি প্রথমে আরোহী ক্রমে আসে এবং অবতরণ ক্রমে শেষ হয়। এটি অনেক বেশি স্বজ্ঞাত, কারণ NULL হল "ক্ষুদ্রতম" মান।
স্টিফেন

4
এমওয়াইএসকিউএল থেকে আসা লোকদের জন্য, এটি কি লোল? এটি কেন প্রথম স্থানে তৈরি হয়েছিল। অথবা
মাইএসকিএল ফলাফলটিকে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.