Ich habe dieses Stück Code:SQL - Verwendung von CASE und OR in SELECT WHEN
SELECT
'Type1' AS TYPE
,1500 AS TotalBalance
,0 AS OverdueBal
INTO #temp1
SELECT
CASE
WHEN
(TYPE = 'Type1' AND TotalBalance BETWEEN 1301 AND 5000) OR
(TYPE = 'Type2' AND TotalBalance >= 1301) AND
OverdueBal > 100 THEN 'Category1'
END
,*
FROM
#temp1
Was ich nicht verstehe ist, warum diese CASE
Aussage ergibt TRUE?
Die Reihe erfüllt die erste Bedingung in den geschweiften Klammern, aber sie erfüllt nicht den AND
Zustand.
Wenn ich die zweite geschweifte Klammernbedingung lösche, dann funktioniert es so, wie es sollte, geben NULL
als Ergebnis.
Es scheint mir, dass es die Zahnspange ignoriert.