Statt "CASE" "IF ELSE" in einer SELECT-Abfrage

25/02/2009 - 11:42 von Martin | Report spam
Hallo,

kann man in einer SELECT-Abfrage statt "CASE" auch mit "IF ELSE" arbeiten?

Ich versuche die ganze Zeit folgende CASE-Variante in eine IF-Variante
umzuschreiben, es klappt aber leider nicht.

CASE-Variante:
SELECT
[Artikel-Nr],
Artikelname,
Einzelpreis,
CASE [Kategorie-Nr]
WHEN 1 THEN 0.5
ELSE 0.25
END AS Rabatt
FROM Artikel


IF-Variante:
SELECT
[Artikel-Nr],
Artikelname,
Einzelpreis,
IF [Kategorie-Nr] = 1
BEGIN
0.5
END
ELSE
BEGIN
0.25
END AS Rabatt
FROM Artikel

Jedesmal erhalte ich folgende Fehlermeldung:

Server: Nachr.-Nr. 156, Schweregrad 15, Status 1, Zeile 5
Falsche Syntax in der Nàhe des IF-Schlüsselwortes.
Server: Nachr.-Nr. 170, Schweregrad 15, Status 1, Zeile 7
Zeile 7: Falsche Syntax in der Nàhe von '0.5'.

Es würde mich interessieren, ob es auch mit IF geht.

Danke

Gruß
Martin
 

Lesen sie die antworten

#1 Gregor Stefka
25/02/2009 - 11:54 | Warnen spam
"Martin" schrieb im Newsbeitrag
news:
Hallo,

kann man in einer SELECT-Abfrage statt "CASE" auch mit "IF ELSE" arbeiten?

Ich versuche die ganze Zeit folgende CASE-Variante in eine IF-Variante
umzuschreiben, es klappt aber leider nicht.




Wenn du die CASE Anweisung in eine Function "auslagerst" kannst du IF / ELSE
benutzen.
Innerhalb des Select Statements nicht.


hth
Gregor Stefka

Ähnliche fragen