首页 > 解决方案 > SQL - 选择虚拟字段并在另一个字段上设置条件值

问题描述

我需要在 PostgreSQL 中做这样的事情:

SELECT "OFF_ID", "DUMMY" ( <--fake field )

CASE WHEN "OFF_ID" = 10661
THEN 
    DUMMY value is set to "john"
ELSE 
    DUMMY value is set to "doe"

WHERE "OFF_STATUS" = TRUE

上面的“CASE”块是完全错误的,我只是不知道如何继续。

换句话说,我需要选择一个假列(DUMMY),并根据条件设置返回值,在我的示例中,取决于 OFF_ID 值。

标签: sqlpostgresql

解决方案


您需要为 CASE 表达式的结果赋予别名“dummy”:

SELECT "OFF_ID", 
       CASE 
         WHEN "OFF_ID" = 10661 THEN 'john'
         ELSE 'doe'
       END AS dummy
FROM ...
WHERE "OFF_STATUS" = TRUE

推荐阅读