小编Ani*_*pos的帖子

那时的情况,但是当时和之前有AND条件

在下面的查询中,我想在CASE的WHEN中添加一个AND条件,然后才可以这样做?

例如WHEN'r'和table1.name ="jones"那么'非常高'

SELECT table1.id, table1.name,
   CASE table1.event
     WHEN 'r' THEN 'very high'
     WHEN 't' THEN 'very low'
     ELSE (SELECT table2.risk FROM table2 WHERE table2.value <= table1.value
           ORDER BY table2.value DESC LIMIT 1)
   END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC
Run Code Online (Sandbox Code Playgroud)

mysql sql phpmyadmin

11
推荐指数
2
解决办法
5万
查看次数

从查询中过滤空值

在下面的查询中,我只想看到风险列中没有 NULL 值的行

SELECT table1.id, table1.name,
   CASE 
     WHEN table1.event = 'r' AND table1.name = 'jones' THEN 'very high'
     WHEN table1.event = 't' AND table1.name = 'smith' THEN 'very low'
     ELSE (SELECT table2.risk FROM table2 WHERE table2.value <= table1.value
           ORDER BY table2.value DESC LIMIT 1)
   END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC
Run Code Online (Sandbox Code Playgroud)

谢谢。

上面查询的结果是:

id  name            risk
17  name            very low
17  name            NULL
18  qwert yuiop very low
18  qwert yuiop NULL …
Run Code Online (Sandbox Code Playgroud)

mysql

4
推荐指数
1
解决办法
6885
查看次数

标签 统计

mysql ×2

phpmyadmin ×1

sql ×1