10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

12.5流量控制功能

表12.7流量控制运营商

名称 描述
案件 案例操作员
如果() 如果/ else构造
ifnull() null如果/ else构造
nullif() 如果expr1 = expr2,则返回null

  • 案件价值什么时候compare_value.然后结果[什么时候compare_value.然后结果...] [别的结果] 结尾

    案例状况然后结果[什么时候状况然后结果...] [别的结果] 结尾

    首先案件语法返回结果为了第一价值=compare_value.比较是真的。第二个语法返回一个真实条件的结果。如果没有比较或条件是真的,结果之后别的被返回,或空值如果没有别的部分。

    笔记

    的语法案件操作员这里描述的描述略有不同于SQL案件陈述描述第13.6.5.1节“案例陈述”,用于在存储的程序内使用。这案件声明不能拥有否则为null.条款,它终止了结束案例代替结尾

    返回类型的案件表达式结果是所有结果值的聚合类型:

    • 如果所有类型都是数字,则聚合类型也是数字:

      • 如果至少有一个参数是双精度,则结果是双精度。

      • 否则,如果至少有一个参数是十进制,结果是十进制

      • 否则,结果是整数类型(具有一个异常):

        • 如果所有整数类型都签名或所有无符号,结果是相同的符号,并且精度是所有指定的整数类型中的最高类型(即,Tinyint.small媒体, 或者big)。

        • 如果存在签名和无符号的整数类型的组合,则结果符号,并且精度可能更高。例如,如果类型签名和无符号,结果签署了big

        • 例外是无符号的big结合任何符号整数类型。结果是十进制具有足够的精度和尺度0。

    • 如果所有类型都是少量,结果是少量。除此以外,少量争论相似于big

    • 如果所有类型都是,结果是。除此以外,争论相似于

    • 如果所有类型都是字符串(char或者varchar.),结果是varchar.最大长度由操作数的最长字符长度确定。

    • 如果所有类型都是字符或二进制字符串,则结果是varbinary.

    • 枚举被治疗类似于varchar.;结果是varchar.

    • 如果所有类型都是杰森,结果是杰森

    • 如果所有类型都是时间,结果是时间:

    • 如果所有类型都是几何学,结果是几何学

    • 如果有任何类型是斑点,结果是斑点

    • 对于所有其他类型的组合,结果是varchar.

    • 文字空值对于类型聚合,忽略操作数。

    mysql>选择案例1当1然后'一个' - >当2然后'两个'别的'更终端时;- >'一个'mysql>选择案例1> 0然后'真'否则'false'end;- >'真实'mysql>选择案例二进制'b' - >当'a'然后1 on'b'然后2结束时;- > null.
  • 如果(Expr1.Expr2.Expr3.

    如果Expr1.真的Expr1.<> 0.Expr1.<> null.),如果()回报Expr2.。否则,它返回Expr3.

    笔记

    还有一个如果陈述,与之不同如果()功能这里描述。看第13.6.5.2节,“如果声明”

    如果只有一个Expr2.或者Expr3.是明确的空值,结果类型如果()功能是非的类型空值表达。

    默认返回类型如果()(当它存储到临时表中可能很重要)计算如下:

    • 如果Expr2.或者Expr3.生成字符串,结果是字符串。

      如果Expr2.Expr3.都是字符串,如果一个字符串区分大小写,结果是区分大小写的。

    • 如果Expr2.或者Expr3.产生浮点值,结果是浮点值。

    • 如果Expr2.或者Expr3.生成整数,结果是整数。

    mysql>选择if(1> 2,2,3);- > 3 mysql>选择if(1 <2,'是','否');- >'是'mysql>选择if(strcmp('test','test1'),'no','是');- >'否'
  • ifnull(Expr1.Expr2.

    如果Expr1.不是空值ifnull()回报Expr1.;否则返回Expr2.

    mysql>选择ifnull(1,0);- > 1 mysql>选择ifnull(null,10);- > 10 mysql>选择ifnull(1/0,10);- > 10 mysql>选择ifnull(1/0,'是');- >'是'

    默认返回类型ifnull(Expr1.Expr2.毕竟是一般的两个表达式,按顺序细绳真实的, 或者整数。考虑基于表达式的表的情况,或者MySQL必须在内部存储返回的值ifnull()在临时表中:

    MySQL>创建表TMP选择ifnull(1,'测试')作为测试;mysql>描述tmp;+ ------- + ------------ + ------ + ----- + --------- + ------- + |领域|型号null |钥匙|默认额外|+ ------- + ------------ + ------ + ----- + --------- + ------- + | test | varbinary(4) | NO | | | | +-------+--------------+------+-----+---------+-------+

    在这个例子中,测试列是varbinary(4)(字符串类型)。

  • nullif(Expr1.Expr2.

    回报空值如果Expr1.=Expr2.是真的,否则退货Expr1.。这与案例Expr1.=Expr2.然后别的别的Expr1.结尾

    返回值与第一个参数具有相同的类型。

    mysql>选择nullif(1,1);- > null mysql>选择nullif(1,2);- > 1
    笔记

    mysql评估Expr1.如果参数不等于,则两次。