2016-06-02 6 views
0

他のビューで作成された2つのビューAとBがあります(ON UPDATE DO NOT INSTEADのルールは使用できません)。 AとBも同じ3列のtext_1、text_2、countを持ちます。今まで私のSQLは次のようになります。selectステートメントの値を設定する

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; 

しかし、私は上記のSELECT文の私の結果にすべてのレコード文字列2のような文字列1の0にカウント値を設定するための別のルールが必要です。

"CREATE OR REPLACE ..."ステートメントを使用したいので、私はビューを使用しています。あなたはより多くの価値を合体したい意味ですか

+0

を避ける?..、ヌル合体(NULL、0を、選択し 'のように9 8) '?.. –

+0

カウントのための' CASE'ステートメントが役に立ちますか? – Raffael

答えて

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) 
関連する問題