在select语句中设置值

时间:2016-06-02 05:57:18

标签: postgresql

我有两个视图A和B由其他视图创建(不能使用规则ON UPDATE DO INSTEAD)。 A和B也有相同的三列text_1,text_2,count。直到现在我的SQL看起来像:

select A.text_1, A.text_2, COALESCE(b.count,a.count) as count 
from A 
   left join B on A.text_1 like B.text_1 and A.text_2 like B.text_2;

但是我需要另一条规则来设置所有记录的count值为0,其中text_1就像我在上面的select语句的结果中的text_2一样。

我使用的是因为我喜欢使用"创建或替换......"声明。

1 个答案:

答案 0 :(得分:1)

using使其更简单,从布尔到整数的转换避免了冗长的case

select
    text_1, text_2,
    coalesce(b.count, a.count) * (not text_1 = text_2)::int as count 
from
    a 
    left join
    b using (text_1, text_2)