เมื่อฟิลด์ T0.Name เป็นชนิดตัวอักษร (char) และต้องการเรียงลำดับตามเดือน โดยเริ่มจากเดือนสิงหาคม (เดือนที่ 8) เป็นเดือนแรกของปีบัญชี ให้ใช้คำสั่ง ORDER BY กรณีเงื่อนไข (CASE WHEN) ดังนี้
คำสั่ง ORDER BY สำหรับปีบัญชีเริ่มเดือนสิงหาคม
ORDER BY CASE WHEN CAST(LEFT(T0.Name, 2) AS INT) >= 8 THEN CAST(LEFT(T0.Name, 2) AS INT) - 8 ELSE CAST(LEFT(T0.Name, 2) AS INT) + 4 END
คำอธิบาย:
LEFT(T0.Name, 2)- ดึง 2 ตัวอักษรแรก (สมมติเป็นรูปแบบ MM เช่น 01, 02, ..., 12)CAST(... AS INT)- แปลงเป็นตัวเลขWHEN ... >= 8- เดือน 8-12 (สิงหาคม-ธันวาคม) ลบ 8 → ได้ 0-4ELSE ... + 4- เดือน 1-7 (มกราคม-กรกฎาคม) บวก 4 → ได้ 5-11- ผลลัพธ์: เดือนสิงหาคม=0, กันยายน=1, ..., ธันวาคม=4, มกราคม=5, ..., กรกฎาคม=11
การประยุกต์: ปรับตัวเลข 8 และ 4 ตามเดือนเริ่มต้นของปีบัญชีองค์กร (Fiscal Year)