sql - 如何根据此列将 SELECT 输出列转换为任意值?

标签 sql postgresql

现在我有以下查询:

SELECT "type" AS "modifiedType"
FROM "Table" 
WHERE "type" = 'type1' OR "type" = 'type2'

我想要的是像这样返回 modifiedType:

if "type" = 'type1' then 'modifiedType1'
else if "type" = 'type2' then 'modifiedType2'

所以我只想在原始列值的基础上用另一个值修改列值。 在 ENUM 中输入列而不是字符串。

我正在使用 Postgres 9.3(或 9.4?)。

最佳答案

使用CASE语句:

select type,
       case
         when type = 'type1' then 'modifiedType1'
         when type = 'type2' then 'modifiedType2'
         else type
       end as modifiedType
from the_table
WHERE type in ('type1', 'type2')

顺便说一句:type 不是一个好的列名

关于sql - 如何根据此列将 SELECT 输出列转换为任意值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24609773/

相关文章:

performance - postgres 函数 : when does IMMUTABLE hurt performance?

sql - 转置然后将表格导出到 CSV 文件

postgresql - 您如何将两个 jsonb 对象与 id 组合在一个 select 语句中?

mysql - PostgreSQL - 列不存在(WHERE with AS)

java - 使用 Hibernate POJO 的 SQL 外键错误

java - Oracle SQL 偏移行数

c# - 使用 ADO.NET 传递表值参数

mysql - 将列值转换为行值

mysql - 根据用户表中的积分对用户进行排名

python - 向 postgres 表中插入一个列表