1.1 条件函数列表
SQL 语言有一个函数列表,有点类似于Javaif-else
中的运算符switch
。
总共有4个这样的函数:
功能 | 描述 | |
---|---|---|
1个 | 案件 | 模拟开关 |
2个 | 如果() | 三元运算符或 if-else 的类似物 |
3个 | 空值() | if-else 的类似物 |
4个 | 无效() | if-else 的类似物 |
SQL中的后三者都是函数表示,CASE
是一个成熟的运算符,所以我们在最后单独考虑。
1.2 IF()函数
SQL 中的函数IF()
有点类似于 Java 中的三元运算符。在 SQL 语言中,它有 3 个参数,如下所示:
IF (condition, true, false)
必须将三个表达式传递给函数IF
:
- 一个经过验证的条件;
- 条件为真时返回的表达式;
- 条件为假时返回的表达式。
下面我将给出一些例子,以便更容易理解它是如何工作的:
要求 | 结果 | |
---|---|---|
1个 | 选择 IF( 1>2 , 2, 3) | 3个 |
2个 | 选择 IF( 1<2 , '是', '否') | '是的' |
3个 | 选择 IF( STRCMP('test','test1' ), 'no', 'yes') | '不' |
1.3 函数 IFNULL() 和 NULLIF()
该函数还有两个修改IF()
。
第一个修改是函数IFNULL()
。它只需要两个值:
IFNULL (expression 1, expression 2)
如果expression1不等于NULL
,则该函数将返回expression1。如果是expression1 IS NULL,
那么该函数将返回expression2。本质是在字段等于时代入默认值NULL
。
函数的第二个修改IF
是 function NULLIF()
,它也有两个值:
NULLIF (expression 1, expression 2)
它以相反的方向工作:
- 如果expression1等于expression2,则函数返回
NULL
; - 如果表达式不相等,则返回表达式 1。