如果我有一个类似于这样的MySQL表:
| NAME | STATUS | DESIGNATION |
-------------------------------
| ABCD | 0 | MD |
| DCFG | 1 | CEO |
| AHSG | 1 | DD |
是否可以运行MySQL查询以获得如下输出:
| NAME | STATUS | DESIGNATION |
-------------------------------------------
| ABCD | No | Managing Director |
| DCFG | YES | Chief Executive Officer |
| AHSG | YES | Deputy Director |
答案 0 :(得分:5)
您可以使用CASE
语句:
SELECT Name
,CASE Status
WHEN 0 THEN 'No'
WHEN 1 THEN 'YES'
END AS Status
,CASE Designation
WHEN 'MD' THEN 'Managing Director'
WHEN 'CEO' THEN 'Chief Executive Officer'
WHEN 'DD' THEN 'Deputy Director'
END AS Designation
FROM MyTable;
如果您只有两个条件,那么只需使用ELSE
而不是第二个条件:
SELECT Name
,CASE Status
WHEN 0 THEN 'No'
ELSE 'YES' <--- I mean use this instead of WHEN 1 THEN 'YES'
END AS Status
,CASE Designation
WHEN 'MD' THEN 'Managing Director'
WHEN 'CEO' THEN 'Chief Executive Officer'
WHEN 'DD' THEN 'Deputy Director'
END AS Designation
FROM MyTable;
结果:
| NAME | STATUS | DESIGNATION |
-------------------------------------------
| ABCD | No | Managing Director |
| DCFG | YES | Chief Executive Officer |
| AHSG | YES | Deputy Director |
答案 1 :(得分:4)
尝试此查询
SELECT Emplyee, if (status = 0, 'No', 'Yes') AS 'Status' from table
EDITED
SELECT
Emplyee,
if (status = 0, 'No', 'Yes') AS 'Status',
CASE Designation
WHEN 'MD' THEN 'Managing Director'
WHEN 'CEO' THEN 'Chief Executive Officer'
WHEN 'DD' THEN 'Deputy Director'
END AS Designation
FROM
table
希望这会有所帮助..