Thứ Sáu, 4 tháng 12, 2015

SQL: Tùy biến cách sắp xếp trong câu lệnh ORDER BY

ORDER BY dùng để sắp xếp kết quả trả về bởi câu lệnh SELECT. Thỉnh thoáng, bạn cần tùy biến cách sắp xếp, không phải theo cách thông thường như ABC, 123…


VD: Chúng ta có bảng Currency dùng để liệt kê tiền tệ của các nước

Do phổ biến của USD, EUR và JPY, chúng ta muốn chúng xuất hiện đầu tiên. Các đơn vị tiền tệ khác sẽ xuất hiện sau và theo thứ tự ABC.
Thay vì viết:

 SELECT * FROM Sales.Currency
 ORDER BY CurrencyCode 
Chúng ta sẽ viết:

SELECT * FROM Sales.Currency
 ORDER BY CASE
  WHEN CurrencyCode = 'USD' THEN NULL
  WHEN CurrencyCode = 'EUR' THEN 'AAA'
  WHEN CurrencyCode = 'JPY' THEN 'AAB'
  ELSE CurrencyCode
  END
Dùng câu lệnh CASE để tùy biến lại cách sắp xếp.

Kết quả sẽ là:

Lưu ý:
Nếu bạn muốn trả về giá trị nào đó ở đầu danh sách sắp xếp, bạn dùng NULL.

Chúc các bạn thành công

Không có nhận xét nào:

Đăng nhận xét

Cám ơn bạn đã quan tâm đến bài viết của mình nhé!