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。
GO TO FULL VERSION