MySQL-এ ORDER BY ক্লজে CASE স্টেটমেন্ট ব্যবহার করে নির্দিষ্ট ভ্যালুয়ুক্ত রোকে প্রথমে (বা শেষে) আনা যায়, বাকিগুলো স্বাভাবিক ক্রমে থাকে।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (Number INT);
mysql> INSERT INTO DemoTable VALUES (490), (310), (540), (123), (1230), (1090);
সকল ডেটা
+--------+ | Number | +--------+ | 490 | | 310 | | 540 | | 123 | | 1230 | | 1090 | +--------+
Number = 1090 কে প্রথমে, বাকি ASC ক্রমে
mysql> SELECT * FROM DemoTable
ORDER BY (CASE WHEN Number = 1090 THEN 0 ELSE 1 END), Number;
ফলাফল
+--------+ | Number | +--------+ | 1090 | | 123 | | 310 | | 490 | | 540 | | 1230 | +--------+
ব্যাখ্যা: CASE WHEN Number = 1090 THEN 0 ELSE 1 END এক্সপ্রেশনটি 1090-এর জন্য ০, বাকিদের জন্য ১ রিটার্ন করে। ORDER BY আরোহী ক্রমে (ASC) সাজায়, তাই ০ (1090) প্রথমে আসে। তারপর Number দিয়ে বাকিগুলো ছোট থেকে বড়ে সাজায়।