我有一个MySQL查询,我希望它返回一个基于以下的伪列:
希望这是有道理的。我的SQL还不够好,无法解决这个问题。
答案 0 :(得分:9)
尝试使用case expression:
SELECT CASE WHEN columnZ <> 0 THEN 4
WHEN columnY <> 0 THEN 3
WHEN columnX <> 0 THEN 2
WHEN columnW <> 0 THEN 1
ELSE 0
END AS your_alias_name
FROM ...
答案 1 :(得分:1)
您可以使用CASE ... WHEN来执行此操作。
见
mysql> SELECT CASE 1 WHEN 1 THEN 'one'
-> WHEN 2 THEN 'two' ELSE 'more' END;
-> 'one'
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
-> 'true'
mysql> SELECT CASE BINARY 'B'
-> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
-> NULL