Prioritas Operator (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Ketika ekspresi kompleks memiliki beberapa operator, prioritas operator menentukan urutan operasi. Urutan eksekusi dapat secara signifikan memengaruhi nilai yang dihasilkan.

Operator memiliki tingkat prioritas yang ditunjukkan dalam tabel berikut. Operator pada tingkat yang lebih tinggi dievaluasi sebelum operator pada tingkat yang lebih rendah. Dalam tabel berikut, 1 adalah tingkat tertinggi dan 8 adalah tingkat terendah.

Tingkat Operator
1 ~ (Bitwise NOT)
2 * (Perkalian), / (Divisi), % (Modulus)
3 + (Positif), - (Negatif), + (Tambahan), + (Perangkaian), - (Pengurangan), & (Bitwise AND), ^ (Bitwise Eksklusif ATAU), | (Bitwise ATAU)
4 =, >, <, >=, <=, <>, !=, !>, !< (Operator perbandingan)
5 TIDAK
6 AND
7 SEMUA, APA PUN, ANTARA, DI, SEPERTI, ATAU, BEBERAPA
8 Tugas

Saat dua operator dalam ekspresi memiliki tingkat prioritas yang sama, operator dievaluasi dari kiri ke kanan berdasarkan posisinya dalam ekspresi. Misalnya, dalam ekspresi yang digunakan dalam pernyataan berikut SET , operator pengurangan dievaluasi sebelum operator penambahan.

DECLARE @MyNumber INT;  
SET @MyNumber = 4 - 2 + 27;  
-- Evaluates to 2 + 27 which yields an expression result of 29.  
SELECT @MyNumber;  

Gunakan tanda kurung untuk mengambil alih prioritas operator yang ditentukan dalam ekspresi. Segala sesuatu dalam tanda kurung dievaluasi untuk menghasilkan satu nilai. Nilai tersebut dapat digunakan oleh operator mana pun di luar tanda kurung tersebut.

Misalnya, dalam ekspresi yang digunakan dalam pernyataan berikut SET , operator perkalian memiliki prioritas yang lebih tinggi daripada operator penambahan. Operasi perkalian dievaluasi terlebih dahulu; hasil ekspresi adalah 13.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * 4 + 5;  
-- Evaluates to 8 + 5 which yields an expression result of 13.  
SELECT @MyNumber;  

Dalam ekspresi yang digunakan dalam pernyataan berikut SET , tanda kurung menyebabkan penambahan dievaluasi terlebih dahulu. Hasil ekspresi adalah 18.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + 5);  
-- Evaluates to 2 * 9 which yields an expression result of 18.  
SELECT @MyNumber;  

Jika ekspresi memiliki tanda kurung berlapis, ekspresi yang paling dalam berlapis dievaluasi terlebih dahulu. Contoh berikut berisi tanda kurung berlapis, dengan ekspresi 5 - 3 dalam kumpulan tanda kurung yang paling dalam. Ekspresi ini menghasilkan nilai 2. Kemudian, operator penambahan (+) menambahkan hasil ini yang 4 menghasilkan nilai 6. Akhirnya, dikalikan 6 dengan 2 untuk menghasilkan hasil ekspresi dari 12.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + (5 - 3) );  
-- Evaluates to 2 * (4 + 2) which then evaluates to 2 * 6, and   
-- yields an expression result of 12.  
SELECT @MyNumber;  

Lihat Juga

Operator Logis (Transact-SQL)
Operator (Transact-SQL)
Fungsi Bawaan (Transact-SQL)