我有这样的数据
id | bookDate | regisDate | payDate | status
1 | 2001-12-31 | 2002-12-31 | 2003-12-31 | 1
2 | 2001-12-31 | 2002-12-31 | 2003-12-31 | 2
3 | 2001-12-31 | 2002-12-31 | 2003-12-31 | 3
我希望结果是这样的
id | date | status
x | x | x
通知date
字段从3减少到1个字段。条件是这样的。如果状态为1
,则从date
获取bookDate
,如果2
从regisDate
获取,则3
从payDate
获取
对于标识为1
的数据的示例,则查询结果将类似于此
id | date | status
1 | 2001-12-31 | 1
在MySQL查询中可以这样做吗?
答案 0 :(得分:3)
您在MySQL中有case
个语句。
SELECT id,
CASE status
WHEN 1 THEN bookDate
WHEN 2 THEN regisDate
WHEN 3 THEN payDate
END
AS date,
status
FROM table
答案 1 :(得分:2)
SELECT id,
CASE status
WHEN 1 THEN bookDate
WHEN 2 THEN regisDate
WHEN 3 THEN payDate END as Date,
Status
FROM YourTable;