สวัสดีครับ วันนี้ผมจะขอนำเสนอวิธีการดึงข้อมูลจากขวามาซ้าย โดยจะทำการตัดข้อความตามรูปแบบที่ต้องการแยกนะครับ
แล้วก็เอาเฉพาะอันสุดท้ายมาแปลงเป็นตัวเลข แล้วก็ทำการเรียงข้อมูลตามตัวเลขครับ
SELECT * ,
CAST(RIGHT(col1, CHARINDEX('-', REVERSE(col1)) - 1) AS INT) AS c
FROM (
SELECT 'aaa-bbb-1' AS col1
UNION ALL
SELECT 'aaa-bbb-2'
UNION ALL
SELECT 'aaa-bbb-10'
UNION ALL
SELECT 'aaa-bbb-20000'
) AS a
ORDER BY c DESC