我正在使用 SELECT IF 语句来转换数据库中的数据:
IF(status = 1, 'Status one', 'Status two')
如果状态为 1,则语句显示Status one
。如果状态为其他状态,则语句显示Status two
。
我想扩展此声明并显示:
IF status = 1, 'Status one'
IF status = 2, 'Status two'
IF status = 3, 'Status three'
IF status = 4, 'Status four'
有人知道我该怎么做吗?
这样的事情应该可以工作:
SELECT
(CASE
WHEN status = 1 THEN 'Status one'
WHEN status = 2 THEN 'Status two'
WHEN status = 3 THEN 'Status three'
WHEN status = 4 THEN 'Status four'
ELSE 'Incorrect Option'
END) AS statustext
FROM yourtable;
根据ysth的评论,这更紧凑,可能更有效:
SELECT
(CASE status
WHEN 1 THEN 'Status one'
WHEN 2 THEN 'Status two'
WHEN 3 THEN 'Status three'
WHEN 4 THEN 'Status four'
ELSE 'Incorrect Option'
END) AS statustext
FROM yourtable;
谢谢你!
您也可以使用CASE
表达式:
SELECT
CONCAT('Status ',
CASE WHEN status = 1 THEN 'one'
WHEN status = 2 THEN 'two'
WHEN status = 3 THEN 'three'
WHEN status = 4 THEN 'four' END) AS label
FROM yourTable