SQL:基于布尔值更改SELECT的结果
假设我有下表(PostgreSQL): 现在我要检索所有名称:SQL:基于布尔值更改SELECT的结果,sql,string,Sql,String,假设我有下表(PostgreSQL): 现在我要检索所有名称: SELECT name as myName, value as myValue FROM table 但是只要“value”为“true”,我就想在名称后面加上“cat”。 所以我的查询中“name”的结果应该是:“Dan”“Bobcat”“Anne”“Larrycat” 这可能吗?您将使用一个大小写表达式: select (case when value = 'true' then name || 'cat' else name
SELECT name as myName, value as myValue FROM table
但是只要“value”为“true”,我就想在名称后面加上“cat”。
所以我的查询中“name”的结果应该是:“Dan”“Bobcat”“Anne”“Larrycat”
这可能吗?您将使用一个
大小写
表达式:
select (case when value = 'true' then name || 'cat' else name end) as name,
value
from t;
SELECT
CASE WHEN value = 'true' THEN CONCAT(name, 'cat') ELSE name END AS name,
value
FROM yourTable;
使用
大小写
表达式:
select (case when value = 'true' then name || 'cat' else name end) as name,
value
from t;
SELECT
CASE WHEN value = 'true' THEN CONCAT(name, 'cat') ELSE name END AS name,
value
FROM yourTable;
我假设您使用的是MySQL,它使用
CONCAT
函数进行字符串连接。解释所有建议的查询,以找到最有效的查询
标记您正在使用的DBMS(即MySQL
,SQL Server
等)。列值的数据类型?(可怜的列名…)UNION ALL会更有效率。@jarlh同意,Changing这最符合我的目的,感谢所有回答的人!