mysql 判断 IF 学习总结

1.IFNULL(expr1,expr2)
若expr1 不为 NULL, IFNULL() 的返回值为 expr1;
若expr1 为 NULL, IFNULL() 的返回值为 expr2。

2.IF(expr1,expr2,expr3)
类似三目运算
若expr1是TRUE,IF()的返回值为expr2;
若expr1是FALSE,IF()的返回值为 expr3。
eg:
SELECT
IF(PARA_VALUE='',PARA_VALUE,CONCAT('ossPath', PARA_VALUE)) AS PARA_URL
FROM
SYS_PARAMETER

3.ISNULL(expr)
若expr 为null,则isnull() 的返回值为 1;
若expr 不为null,则isnull() 的返回值为 0。
eg.

WHERE PARA_CODE = 'YLY_NAME'```

4.`NULLIF(expr1,expr2)`
若expr1 = expr2 成立,则返回值为NULL;
若expr1 = expr2 不成立,则返回值为expr1;
eg.
`SELECT NULLIF(12,11)` 结果:12
`SELECT NULLIF(1,1)` 结果:NULL

5.`IS NOT NULL` 和 `IS NOT NULL`
用于判断是否为null的语句
eg.
`SELECT COUNT(1) FROM  SYS_PARAMETER WHERE UPDATER IS NOT NULL`

6.` =''` 或者` <>''`
用于判断空字符串
 <> : 不等于
 eg.
 `SELECT COUNT(1) FROM  SYS_PARAMETER WHERE UPDATER <>''`

7.对比
```SELECT COUNT(1) FROM  SYS_PARAMETER WHERE UPDATER <>''
SELECT COUNT(1) FROM  SYS_PARAMETER WHERE UPDATER =''
SELECT COUNT(1) FROM  SYS_PARAMETER WHERE UPDATER IS NULL
SELECT COUNT(1) FROM  SYS_PARAMETER WHERE UPDATER IS NOT NULL```
当UPDATER 的值为NULL时,除了第三条语句,有值,其余均为0。

8.CASE




如果值为1,则显示男,为2显示女,否则显示保密。

9.CASE THEN
同上换种写法:

CASE
 WHEN SEX = '1' THEN '男'
 WHEN SEX = '2' THEN '女'
 ELSE '其他' END 
 CASE SEX
  WHEN '1' THEN '男'
  WHEN '2' THEN '女’
  ELSE '保密' END

如果值为1,则显示男,为2显示女,否则显示保密。

9.CASE THEN
同上换种写法:

CASE
 WHEN SEX = '1' THEN '男'
 WHEN SEX = '2' THEN '女'
 ELSE '其他' END 

你可能感兴趣的:(数据库)