標籤:求值 注意 情況下 例子 null 結果 amp 算術運算 列表
postgresql的內部運算子很豐富,主要有四大類,分別是:算術運算子、比較子、邏輯運算子、位操作運算子。如下:
①:算術運算子:
用於各類數值運算,包括加(+)減(-) 乘(*)除(/)求餘(%)
例子:
testdb=# create table emp (num int);
testdb=# insert into emp values (60);
testdb=# select num,num+10,num-10,num+10-5,num+10.5 from emp; ---對欄位進行:加 減 運算
num | ?column? | ?column? | ?column? | ?column?
-----+----------+----------+----------+----------
60 | 70 | 50 | 65 | 70.5
(1 row)
testdb=# select num,num*2,num/3,num%2 from emp; ---對欄位進行:乘 除運算
num | ?column? | ?column? | ?column?
-----+----------+----------+----------
60 | 120 | 20 | 0
(1 row)
②:比較子
用於比較運算,包括大於(>)小於(<)等於(=)大於等於(>=)小於等於(<=)不等於(!=),以及in、between and、greatest、least、like等。
例子:
testdb=# select 1=0,2=2,(1+4)=(2+3);
?column? | ?column? | ?column?
----------+----------+----------
f | t | t
(1 row)
testdb=# select 'good'<>'god',1<>2,5.5!=5,(1+1)!=2;
?column? | ?column? | ?column? | ?column?
----------+----------+----------+----------
t | t | t | f
(1 row)
--least運算子:判斷最小值
least運算子的文法格式為:least(值1,值2,,,值n),其中,值n表示參數列表中有n個值。在有兩個或多個參數的情況下,返回最小值。任意一個值為null,在比較重忽略不計。
例子:使用least運算子進行大小判斷
testdb=# select least(2,0),least(1.5,5,3),least('a','g','b'),least(10,null); ---從下面的結果可以看出,返回的都是最小的值!!!
least | least | least | least
-------+-------+-------+-------
0 | 1.5 | a | 10
(1 row)
--greatest(value1,value2,,,,)
文法格式:greatest(值1,值2,,,,)其中,n表示參數列表中有n個值。當有兩個或多個參數時,傳回值為最大值。任意一個自變數為null,在比較中忽略不計。
例子:使用greatest運算子進行大小判斷,
testdb=# select greatest(2,0),greatest(1.5,5,3),greatest('a','g','b'),greatest(10,null); ---從下面的結果可以看出,返回的都是最大值!!!
greatest | greatest | greatest | greatest
----------+----------+----------+----------
2 | 5 | g | 10
(1 row)
③:邏輯運算子
邏輯運算子的求值所得結果均為t(true)、f(false),這類運算子有邏輯非(not)邏輯與(and)邏輯或(or)
④:位操作運算子
參與運算的運算元按二進位位進行運算,包括位與(&),位或(|)位非(~)左移(<<)右移(>>)
注意:
運算的優先順序決定了不同的運算子在運算式中計算得先後順序。最低:=,:= 最高! 一般情況下層級高的運算子先進行計算,如果層級相同,postgresql就按運算式的順序從左至右依次計算。
postgresql——運算子介紹