我的sql不好。但我正在嘗試做一些類似以下的事情
where 1 = 1
and case
when first_criterion = max1 or first_criterion = min1 then 1 else 0
when second_criterion = max2 or second_criterion = min2 then 1 else 0
when third_criterion = max3 or third_criterion = min3 then 1 else 0
end < 2
order by arbiter_id;
如果我只是使用
where 1 = 1
and case
when first_criterion = max1 or first_criterion = min1 then 1 else 0
end < 2
order by arbiter_id;
然后它作業
如何使用第一個添加值?
謝謝
uj5u.com熱心網友回復:
如果要過濾掉適用超過 1 個條件的行,則需要 3 個單獨的CASE運算式:
WHERE 1 = 1
AND CASE WHEN first_criterion = max1 OR first_criterion = min1 THEN 1 ELSE 0 END
CASE WHEN second_criterion = max2 OR second_criterion = min2 THEN 1 ELSE 0 END
CASE WHEN third_criterion = max3 OR third_criterion = min3 THEN 1 ELSE 0 END
< 2
ORDER BY arbiter_id;
如果您確實想要恰好適用 1 個條件的行,則應更改< 2為= 1.
uj5u.com熱心網友回復:
我假設你打錯了,你能檢查一下嗎:
where 1 = 1
and case
when first_criterion = max1 or first_criterion = min1 then 1
when second_criterion = max2 or second_criterion = min2 then 1
when third_criterion = max3 or third_criterion = min3 then 1
else 0
end < 2
order by arbiter_id;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438763.html
標籤:sql
