欢迎光临
我们一直在努力

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,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就按表达式的顺序从左到右依次计算。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。