Thứ tự ưu tiên của các toán tử trong một biểu thức Oracle SQL

  1. Thứ tự ưu tiên các toán tử
Thứ tự Ý nghĩa
1Biếu thức toán học ( Arithmetic operators )
2Toán tử liên kết (Concatenation operator)
3Điều kiện so sánh (Comparison conditions)
4IS [NOT] NULL, LIKE, [NOT] IN
5[NOT] BETWEEN
6Không bằng (Not equal to)
7NOT logical condition
8AND logical condition
9OR logical condition

Quy luật ưu tiên xác định thứ tự các toán tử nào được đánh giá và tính toán trước trong một biểu thức. Tuy nhiên, bạn cũng có thể loại bỏ thứ tự ưu tiên mặc định bằng cách kết hợp các dấu ngoặc đơn xung quanh biểu thức nào mà bạn muốn tính toán trước.

Ví dụ: 

SELECT last_name, job_id, salary
FROM employees
WHERE job_id = ‘SA_REP’
OR job_id = ‘AD_PRES’
AND salary > 15000;

Ví dụ trên thực hiện đánh giá job_id = ‘AD_PRES’ AND salary > 15000 trước, sau đó OR với job_id = ‘SA_REP’.

Ví dụ:

SELECT last_name, job_id, salary
FROM employees
WHERE (job_id = ‘SA_REP’
OR job_id = ‘AD_PRES’)
AND salary > 15000;

Ví dụ trên thực hiện job_id = ‘SA_REP’ OR job_id = ‘AD_PRES’ trước, sau đó AND với salary > 15000. Các bạn có thể đoán được kết quả là gì không?

2. Sắp xếp dữ liệu sử dụng mệnh đề ORDER BY

Để sắp xếp lại hay còn gọi là sort dữ liệu hiển thị của các hàng ta sử dụng mệnh đề ORDER BY. Mệnh đề ORDER BY được đặt cuối cùng trong cấu lệnh SQL. Bạn chỉ ra một biểu thức, column alias, column name trong mệnh đề ORDER BY.

Cú pháp:

Mặt định dữ liệu được sắp xếp theo kiểu ASC (giá trị tăng dần). Bạn có thể dùng DESC để sắp xếp lại dữ liệu có giá trị giảm dần. Có thể sử dụng NULLS FIRST hoặc NULLS LAST để chỉ giá trị Null được hiển thị trên cùng hay dưới cùng trong thứ tự sắp xếp.

Ví dụ:

SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date

SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;

SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal

Ta có thể sắp xếp lại bằng cách sử dụng lại con số vị trí mà column đang liệt kê trong mệnh đề SELECT. 

Ví dụ:

SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY 3;

Ví dụ trên sắp xếp lại dữ liệu dựa vào column department_id

Ta có thể sắp xếp dữ liệu theo nhiều column. Ví dụ

SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;