如果記錄存在,我想返回布爾值。 以下查詢適用於單個表格。如果記錄存在多個表如何返回布爾值
SELECT CASE WHEN MAX(componentid) IS NULL THEN 'NO' ELSE 'YES' END
table3 FROM table3 WHERE componentid = 'GetAccountBalance';
我曾嘗試同爲使用JOIN 3個表,但我不能做到以下查詢預期result.The返回所有值「否」如果任何表(表3假設)沒有記錄而另外兩個表有。
select CASE WHEN MAX(a.componentid)IS NULL THEN 'NO' ELSE 'YES' END table1,
CASE WHEN MAX(b.componentid)IS NULL THEN 'NO' ELSE 'YES' END table2,
CASE WHEN MAX(c.componentid)IS NULL THEN 'NO' ELSE 'YES' END table3
from table1 a
join table2 b on a.componentid=b.componentid
join table3 c on a.componentid=c.componentid
and a.componentid ='GetAccountBalance';
輸出
table1 table2 table3
NO NO NO
預計
table1 table2 table3
YES YES NO
也有可能搜索使用多個值嗎?像
a.componentid in ('GetAccountBalance','GetCreditBalance')
如果你JOIN表,你不能做一個MAX上的每一個表中的SQL。這些表格連接在一起,並且您有一個合併的結果。簡單地說:你的MAX-Operator在這裏是錯誤的。你應該把它分解成獨立的SQL。你有沒有使用過JOIN? – etalon11
是每個表中唯一的「componentid」嗎? 'table1'中可能不存在這個值嗎? –
@a_horse_with_no_name'yes'for your question.Thanks –