SQL中的Case或IF语句示例



我有一个查询如下:

SELECT A.BELEGNR, A.BEZEICH, A.PREIS, A.BUDATUM, A.P_RG_BEZAH, B.BEDINGUNG, A.LIEFERANT,
A.NAME, A.KENN_FREI, A.KURS, A.VALUTA_DAT
FROM   A
LEFT OUTER JOIN B ON B.BED_NR=A.ZBD AND A.SPRACHE=B.SPRACHE
WHERE
A.P_RG_BEZAH=0  AND A.KENN_FREI<>'E'
AND
if A.GESCH_BER IN (002,005) and A.LIEFERANT not in ('600099','601922')
else A.LIEFERANT not in ('600299','601519') and A.VALUTA_DAT > getdate()

我想在最后一部分使用Case或IF语句:

if A.GESCH_BER IN (002,005) and A.LIEFERANT not in ('600099','601922')
else A.LIEFERANT not in ('600299','601519') and A.VALUTA_DAT > getdate()

尝试了很多选择,但不知道更多。

谢谢。

您应该像这样使用AND/OR:

WHERE A.P_RG_BEZAH=0  
AND A.KENN_FREI<>'E'
AND ((A.GESCH_BER IN (002,005) and A.LIEFERANT not in ('600099','601922')) OR 
(A.LIEFERANT not in ('600299','601519') and A.VALUTA_DAT > getdate()))

最新更新