Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:基于布尔值更改SELECT的结果_Sql_String - Fatal编程技术网

SQL:基于布尔值更改SELECT的结果

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

假设我有下表(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 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这最符合我的目的,感谢所有回答的人!