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