我有两个视图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一样。
我使用的是因为我喜欢使用"创建或替换......"声明。
答案 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)