WHERE – GROUP BY – HAVING – ORDER BY
1.Câu lệnh WHERE
Dùng để lọc dữ liệu theo điều kiện cho trước. Sau where có thể kết hợp với các câu lệnh khác để sắp xếp và hiệu chỉnh dữ liệu.
Cú pháp:
SELECT col_1,…col_n FROM [Table_name$] WHERE col_name + toán tử (>/</=/LIKE/AND/OR/BETWEEN)
Lưu ý:
WHERE với data là số: không có cặp dấu nháy đơn bao quanh điều kiện
WHERE với data là chuỗi: có cặp dấu nháy đơn ‘’ bao quanh điều kiện
WHERE với data là thời gian: có cặp dấu #...# bao quanh điều kiện.
Với dữ liệu thời gian bạn hãy nhập theo đúng định dạng MM/DD/YYYY
Ví dụ:
SELECT PO_Number, Vendor_name FROM [PO_detail$] WHERE
PO_date BETWEEN #2020-01-01# AND #2020-31-10#
Kết quả trả về là cột PO_Number, Vendor_name trong bảng PO_detail có PO_date từ 2020/1/1 đến 2020/31/10.
2.GROUP BY
GROUP BY: dùng để nhóm các dữ liệu sau khi thực hiện phép toán. Phải Group by tất cả các cột được chọn và KHÔNG Group by với các cột TÍNH TOÁN. Mỗi cột cách nhau bới dấu phẩy.
Cú pháp: SELECT col_1, sum(col_2) FROM [Table_name$] GROUP BY col_1
Trong đó Sum là phép tính có thể thay thế với các phép tính khác như (Sum, min, max, average,…)
3.HAVING
HAVING: Dùng để thêm điều kiện tính toán sau WHERE hoặc thay thế WHERE
Cú pháp:
SELECT col_1, sum (col_2) as Sumary FROM [Table_name$] GROUP BY col_1 HAVING sum(col_2) >1000 Trong đó: sum(col_2) có tên là Sumary khi dùng Having với cột tính toán thì không được dùng tên.
Trong trường hợp trên nếu dùng HAVING Sumary sẽ bị lỗi.
4.ORDER BY
ORDER BY: dùng để sắp xếp dữ liệu sau khi tính toán.
Có 2 các sắp xếp:
Tăng dần: ASC
Giảm dần: DESC
Cú pháp:
SELECT col_1, sum col_2, col_3 FROM [Table_name$] WHERE….ORDER BY Col_1 ASC, col_3 DESC
Có thể ORDER BY nhiều cột, mỗi cột cách nhau bới dấu phẩy và sau tên cột sẽ có thuộc tính tang (ASC) hoặc giảm (DESC)
Nếu sau tên cột không truyền thuộc tính tang hoặc giảm thì SQL sẽ tự động hiểu rằng bạn sắp xếp tăng dần.
1.Câu lệnh WHERE
Dùng để lọc dữ liệu theo điều kiện cho trước. Sau where có thể kết hợp với các câu lệnh khác để sắp xếp và hiệu chỉnh dữ liệu.
Cú pháp:
SELECT col_1,…col_n FROM [Table_name$] WHERE col_name + toán tử (>/</=/LIKE/AND/OR/BETWEEN)
Lưu ý:
WHERE với data là số: không có cặp dấu nháy đơn bao quanh điều kiện
WHERE với data là chuỗi: có cặp dấu nháy đơn ‘’ bao quanh điều kiện
WHERE với data là thời gian: có cặp dấu #...# bao quanh điều kiện.
Với dữ liệu thời gian bạn hãy nhập theo đúng định dạng MM/DD/YYYY
Ví dụ:
SELECT PO_Number, Vendor_name FROM [PO_detail$] WHERE
PO_date BETWEEN #2020-01-01# AND #2020-31-10#
Kết quả trả về là cột PO_Number, Vendor_name trong bảng PO_detail có PO_date từ 2020/1/1 đến 2020/31/10.
2.GROUP BY
GROUP BY: dùng để nhóm các dữ liệu sau khi thực hiện phép toán. Phải Group by tất cả các cột được chọn và KHÔNG Group by với các cột TÍNH TOÁN. Mỗi cột cách nhau bới dấu phẩy.
Cú pháp: SELECT col_1, sum(col_2) FROM [Table_name$] GROUP BY col_1
Trong đó Sum là phép tính có thể thay thế với các phép tính khác như (Sum, min, max, average,…)
3.HAVING
HAVING: Dùng để thêm điều kiện tính toán sau WHERE hoặc thay thế WHERE
Cú pháp:
SELECT col_1, sum (col_2) as Sumary FROM [Table_name$] GROUP BY col_1 HAVING sum(col_2) >1000 Trong đó: sum(col_2) có tên là Sumary khi dùng Having với cột tính toán thì không được dùng tên.
Trong trường hợp trên nếu dùng HAVING Sumary sẽ bị lỗi.
4.ORDER BY
ORDER BY: dùng để sắp xếp dữ liệu sau khi tính toán.
Có 2 các sắp xếp:
Tăng dần: ASC
Giảm dần: DESC
Cú pháp:
SELECT col_1, sum col_2, col_3 FROM [Table_name$] WHERE….ORDER BY Col_1 ASC, col_3 DESC
Có thể ORDER BY nhiều cột, mỗi cột cách nhau bới dấu phẩy và sau tên cột sẽ có thuộc tính tang (ASC) hoặc giảm (DESC)
Nếu sau tên cột không truyền thuộc tính tang hoặc giảm thì SQL sẽ tự động hiểu rằng bạn sắp xếp tăng dần.