[英]Multiple columns return in CASE Statement SQL
我有兩個表,根據TABLE1中一個字段的總和,我必須從 TABLE2 返回不同的數據集:
我試圖通過 Case 語句來實現這一點,但收到一個錯誤,說subselect 必須只有一個字段。
有一個更好的方法嗎? 只是當 table1 中的列的總和為 0 時,不要 select 來自 table2
我的 SQL:
SELECT
CASE
WHEN SUM(transaction_unit_failed) > 0
THEN (
SELECT sale_event_nr, business_unit, transaction_nr, transaction_unit_failed_number
FROM TABLE2
)
WHEN SUM(transaction_unit_failed) = 0
THEN (
SELECT sale_event_nr, business_unit, transaction_nr, transaction_unit_failed_number
FROM TABLE2
WHERE 1 = 2
)
FROM TABLE1
select * from table2
where exists (
select 1
from table1
having sum(transaction_unit_failed) > 0
);
https://dbfiddle.uk/?rdbms=sqlserver_2014&fiddle=3f68d250bc9a3235767b86626092799e
如果有令人信服的理由,您當然可以將其寫為連接。 它將消除很好地使用*
僅返回一個表中的列的便利。
select *
from table2 inner join (
select sum(transaction_unit_failed) as stuf
from table1
) on stuf > 0;
SELECT sale_event_nr, business_unit, transaction_nr, transaction_unit_failed_number
FROM TABLE2
WHERE (SELECT SUM(transaction_unit_failed) > 0
FROM TABLE1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.