openGauss学习笔记-16 openGauss 简单数据管理-运算符

openGauss学习笔记-16 openGauss 简单数据管理-运算符16.1 算术运算符16.2 比较操作符16.3 逻辑操作符

openGauss学习笔记-16 openGauss 简单数据管理-运算符

openGauss中运算符是一个保留关键字或字符,一般用在WHERE语句中,作为过滤条件。常见运算符如下。

16.1 算术运算符

描述:加

示例:
openGauss=# SELECT 2+3 AS RESULT;
 result 
--------
 5
(1 row)
描述:减

示例:
openGauss=# SELECT 2-3 AS RESULT;
 result 
--------
 -1
(1 row)

    描述:乘

    示例:

openGauss=# SELECT 2*3 AS RESULT;
     result 
    --------
     6
    (1 row)
  • /

    描述:除(除法操作符不会取整)

    示例:

openGauss=# SELECT 4/2 AS RESULT;
     result 
    --------
     2
    (1 row)
openGauss=# SELECT 4/3 AS RESULT;
     result
    ------------------
     1.33333333333333
    (1 row)
  • +/-

    描述:正/负

    示例:

openGauss=# SELECT -2 AS RESULT;
     result 
    --------
     -2
    (1 row)
  • %

    描述:模(求余)

    示例:

openGauss=# SELECT 5%4 AS RESULT;
     result 
    --------
     1
    (1 row)
  • @

    描述:绝对值

    示例:

openGauss=# SELECT @ -5.0 AS RESULT;
     result 
    --------
     5.0
    (1 row)
  • ^

    描述:幂(指数运算)

    示例:

openGauss=# SELECT 2.0^3.0 AS RESULT;
     result 
    --------------------
     8.0000000000000000
    (1 row)
  • |/

    描述:平方根

    示例:

openGauss=# SELECT |/ 25.0 AS RESULT;
     result 
    --------
     5
    (1 row)
  • ||/

    描述:立方根

    示例:

openGauss=# SELECT ||/ 27.0 AS RESULT;
     result 
    --------
     3
    (1 row)
  • !

    描述:阶乘

    示例:

openGauss=# SELECT 5! AS RESULT;
     result 
    --------
     120
    (1 row)
  • !!

    描述:阶乘(前缀操作符)

    示例:

openGauss=# SELECT !!5 AS RESULT;
     result 
    --------
     120
    (1 row)
  • &

    描述:二进制AND

    示例:

openGauss=# SELECT 91&15  AS RESULT;
     result 
    --------
     11
    (1 row)
  • |

    描述:二进制OR

    示例:

openGauss=# SELECT 32|3  AS RESULT;
     result 
    --------
     35
    (1 row)
  • 描述:二进制XOR

    示例:

openGauss=# SELECT 17#5  AS RESULT;
     result 
    --------
     20
    (1 row)
  • ~

    描述:二进制NOT

    示例:

openGauss=# SELECT ~1 AS RESULT;
     result 
    --------
     -2
    (1 row)
  • «

    描述:二进制左移

    示例:

openGauss=# SELECT 1<<4 AS RESULT;
     result 
    --------
     16
    (1 row)
  • 描述:二进制右移

    示例:

openGauss=# SELECT 8>>2 AS RESULT;
     result 
    --------
     2
    (1 row)

16.2 比较操作符

大部分数据类型都可用比较操作符进行比较,并返回一个布尔类型的值。

比较操作符均为双目操作符,被比较的两个数据类型必须是相同的数据类型或者是可以进行隐式转换的类型。

openGauss提供的比较操作符请参见表1

表 1 比较操作符

操作符 描述
< 小于
> 大于
<= 小于或等于
>= 大于或等于
= 等于
<> 或 !=或^= 不等于

比较操作符可以用于所有相关的数据类型。所有比较操作符都是双目操作符,返回布尔类型数值。不等号的计算优先级高于等号。当输入的数据不同且无法隐式转换时, 比较操作将会失败。例如像1<2<3这样的表达式是非法的,因为布尔值和3之间无法用小于号(<)比较。

示例:

openGauss=# select 1<2;
 ?column?
----------
 t
(1 row)

openGauss=# select 1>2;
 ?column?
----------
 f
(1 row)

openGauss=# select 1>=2;
 ?column?
----------
 f
(1 row)

openGauss=# select 1<=2;
 ?column?
----------
 t
(1 row)

openGauss=# select 1=2;
 ?column?
----------
 f
(1 row)

openGauss=# select 1!=2;
 ?column?
----------
 t
(1 row)

16.3 逻辑操作符

常用的逻辑操作符有AND、OR和NOT,他们的运算结果有三个值,分别为TRUE、FALSE和NULL,其中NULL代表未知。他们运算优先级顺序为:NOT>AND>OR。

操作符AND和OR具有交换性,即交换左右两个操作数,不影响其结果。

运算规则请参见表2,表中的a和b代表逻辑表达式。

表 2 运算规则表

a b a AND b的结果 a OR b的结果 NOT a的结果
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE FALSE
TRUE NULL NULL TRUE FALSE
FALSE FALSE FALSE FALSE TRUE
FALSE NULL FALSE NULL TRUE
NULL NULL NULL NULL NULL

示例请参见示例。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容