在下面的查询中,我想在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) 在下面的查询中,我只想看到风险列中没有 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)