首页 > 解决方案 > 我可以使用 SQL 显示基于列值的自定义文本吗?

问题描述

有没有办法根据列中的值显示不同的字符串?

IE

SELECT value FROM table;

+--------+
| value  |
+--------+
|      1 |
|      0 |
|      1 |
|      1 |
+--------+

我想要的输出是这样的:

+--------+
| value  |
+--------+
|    yes |
|     no |
|    yes |
|    yes |
+--------+

如何?

标签: mysqlsql

解决方案


使用CASE语句可以得到预期的结果:

SELECT CASE WHEN value = 1 THEN 'yes' 
            WHEN value = 0 THEN 'no' 
            ELSE '' 
       END AS value
FROM testtable;

或使用IF语句

SELECT IF(value = 1, 'yes', IF(value = 0, 'no', '')) AS value
FROM testtable;

db<>fiddle 上的演示


推荐阅读