如何在PostgreSQL中选择查询后设置一个值?

时间:2015-06-04 13:02:08

标签: postgresql

我使用简单的选择查询:

SELECT
    transactiontype
FROM
    posfeed
LIMIT 100;

我的结果是我有一些空值的行。 我需要在SELECT查询结果中设置一些默认值。

类似的东西:

if (transactiontype = '') {
  //SET SOME VALUE HERE
} else {
  //LEAVE
}

1 个答案:

答案 0 :(得分:0)

  

我可以以某种方式在'其中'条款

要在where子句中使用列别名,必须将select包装到派生表中:

select * 
from (
  SELECT CASE transactiontype 
           WHEN '' THEN 'some_default_value' 
           ELSE transactiontype 
         END AS transactiontype
  FROM the_table
) t 
where transactiontype = '...';

但我不明白这样做的理由,如果你想找到那些只返回some_default_value的地方:

SELECT CASE transactiontype 
          WHEN '' THEN 'some_default_value' 
         ELSE transactiontype 
       END AS transaction_type
FROM the_table
where transactiontype =  '';

但那并没有多大意义,因为上述内容相当于:

SELECT 'some_default_value' 
FROM the_table
where transactiontype =  '';

所以我猜你在问题或评论中没有包含这些内容。