1. Vấn đề
Trong các bài trước chúng ta đã nghiên cứu rất kỹ về chủ đề sắp xếp dữ liệu trong quá trình truy vấn. Không chỉ sắp xếp theo một điều kiện mà còn nhiều điều kiện, theo những mệnh đề điều kiện đã chỉ định trước. Và một trong những chủ đề không thể thiếu trong quá trình truy vấn là sắp xếp dữ liệu theo mệnh đề Order By có lồng Substring
SELECT <col1, col2, col3, ….>
FROM <table name>
WHERE <col1 = value1,…>
ORDER BY Substring(col1,…)
2. Coding
Sử dụng truy vấn của mệnh trên áp dụng vào ví dụ như sau: hãy sắp xếp dữ liệu trong bảng products thỏa mãn điều kiện lấy ký tự đầu tiên của mỗi sản phẩm và sắp xếp chúng theo một thứ tự giảm dần và có UnitPrice >30.
Dựa vào ví dụ trên ta có thể phân tích lọc ra các dữ liệu có ký tự đầu tiên. Để làm được điều này bạn cần sử dụng function Substring. Substring là một function có 3 đối số truyền vào. Một là tên của column gọi trong ví dụ này là ProductName. Thứ hai là đối số vị trí bắt đầu cắt chuỗi phải là giá trị số, và thứ ba là độ dài của chuỗi phải là con số.
Và điều kiện nữa là sử dụng điều kiện WHERE để lấy ra các giá trị lớn hơn 30
Substring (exprestion, start position, length)
Ta cài đặt mã lệnh trên như sau
SELECT [ProductID]
,[ProductName]
,[CategoryID]
,[UnitPrice]
FROM [Products]
WHERE UnitPrice >30
ORDERBYSUBSTRING(Productname,0,2)DESC
ORDERBYSUBSTRING(Productname,0,2)DESC chính là lấy ký tự đầu tiên trong dãy dữ liệu và dùng từ khóa DESC để sắp xếp dữ liệu giảm dần
Kết quả của câu lệnh truy vấn trên ta được 24 kết quả như sau

Như vậy chúng ta đã hiểu biết thêm về một loại truy vấn mà điều kiện truy vấn là ở Order By không phải hoàn toàn ở mệnh đề WHERE
GV Hồ Đức Duy