将别名设置为数据库表的字段中的值

Jyo*_*ish 2 mysql sql database select

如果我有一个MySQL表看起来像这样:

| NAME | STATUS | DESIGNATION |
-------------------------------
| ABCD |      0 |          MD |
| DCFG |      1 |         CEO |
| AHSG |      1 |          DD |
Run Code Online (Sandbox Code Playgroud)

是否可以运行MySQL查询以获得如下输出:

| NAME | STATUS |             DESIGNATION |
-------------------------------------------
| ABCD |     No |       Managing Director |
| DCFG |    YES | Chief Executive Officer |
| AHSG |    YES |         Deputy Director |
Run Code Online (Sandbox Code Playgroud)

him*_*056 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;
Run Code Online (Sandbox Code Playgroud)

如果您只有两个条件,那么只需使用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;
Run Code Online (Sandbox Code Playgroud)

结果:

| NAME | STATUS |             DESIGNATION |
-------------------------------------------
| ABCD |     No |       Managing Director |
| DCFG |    YES | Chief Executive Officer |
| AHSG |    YES |         Deputy Director |
Run Code Online (Sandbox Code Playgroud)

看到这个SQLFiddle