postgresql——运算符介绍
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,greatest(1.5,greatest('a',greatest(10,null);? ---从下面的结果可以看出,返回的都是最大值!!! ?greatest | greatest | greatest | greatest? ----------+----------+----------+---------- ? ? ? ? 2 |? ? ? ? 5 | g? ? ? ? |? ? ? ?10 (1 row) ③:逻辑运算符 ?逻辑运算符的求值所得结果均为t(true)、f(false),这类运算符有逻辑非(not)逻辑与(and)逻辑或(or) ④:位操作运算符 参与运算的操作数按二进制位进行运算,包括位与(&),位或(|)位非(~)左移(<<)右移(>>) 注意: ? 运算的优先级决定了不同的运算符在表达式中计算得先后顺序。最低:=,:=? ?最高!? ?一般情况下级别高的运算符先进行计算,如果级别相同,postgresql就按表达式的顺序从左到右依次计算。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |