Benutzer mit den meisten Antworten
Syntax Problem mit When Abfrage

Frage
-
Hallo Spezialisten,
ich bin gerade am Lernen der When abfrage in Transact SQL und habe ein Problem mit der SYNTAX
DECLARE @Criterion AS Varchar; SET @Criterion = 'kg'; DECLARE @Result AS CHAR(100); CASE WHEN @Criterion LIKE 'g' THEN SET @Result = 'Gramm' ELSE SET @Result = 'Kilogramm' END; SELECT (@Result);
Auf diese Weise habe ich es schon geschaft
DECLARE @Criterion AS Varchar;
SET @Criterion = 'g';
SELECT
(CASE WHEN @Criterion LIKE 'g' THEN 'Gramm'
ELSE 'Kilogramm'
END) AS 'Gewicht';
Ich sehe leider keinen Unterschied zur 1. Version
Bitte klärt mich über falsche Fachbegriffe auf Beste Grüße Florian Reiter
Antworten
-
Hallo,
Ich schätze mal, Du kommst aus der Programmierer-Ecke?
CASE WHEN kannst Du nur als Fallunterscheidung im Datenfluß verwenden, nicht zur Steuerung des Programmfluß. Hierfür kannst Du die IF ELSE Anweisung verwenden; Dein erstes Statement müsste also so aussehen:
DECLARE @Criterion AS Varchar; SET @Criterion = 'kg'; DECLARE @Result AS CHAR(100); IF @Criterion LIKE 'g' SET @Result = 'Gramm' ELSE SET @Result = 'Kilogramm' SELECT (@Result);
Olaf Helper
Blog Xing- Als Antwort markiert Florian.Reiter Montag, 28. Januar 2013 12:50
- Tag als Antwort aufgehoben Florian.Reiter Montag, 28. Januar 2013 12:56
- Als Antwort markiert Florian.Reiter Montag, 28. Januar 2013 13:00
Alle Antworten
-
Hallo,
Ich schätze mal, Du kommst aus der Programmierer-Ecke?
CASE WHEN kannst Du nur als Fallunterscheidung im Datenfluß verwenden, nicht zur Steuerung des Programmfluß. Hierfür kannst Du die IF ELSE Anweisung verwenden; Dein erstes Statement müsste also so aussehen:
DECLARE @Criterion AS Varchar; SET @Criterion = 'kg'; DECLARE @Result AS CHAR(100); IF @Criterion LIKE 'g' SET @Result = 'Gramm' ELSE SET @Result = 'Kilogramm' SELECT (@Result);
Olaf Helper
Blog Xing- Als Antwort markiert Florian.Reiter Montag, 28. Januar 2013 12:50
- Tag als Antwort aufgehoben Florian.Reiter Montag, 28. Januar 2013 12:56
- Als Antwort markiert Florian.Reiter Montag, 28. Januar 2013 13:00