2016-08-31 10 views
-1

Grundsätzlich möchte ich eine Zeichenfolge in einer Variablen speichern. Aber ich möchte Inhalte von anderen Orten mitnehmen, z. B. wechselnde Ergebnisse je nach Bedingungen.Case-Anweisung in String

Beispiel.
Ich habe 3 Studenten - a, b, c. Also hier wäre es.

DECLARE @intro nvarchar(80) = 'Hi!!! My Name is ' + 
      CASE WHEN 'a' THEN 'Ashley' WHEN 'b' THEN 'Bernard' WHEN 'c' THEN 'Cassie' 

Aber das Pluszeichen gibt einen Fehler aus. Ich weiß, dass ich eine andere Variable erstellen kann und sie durch die oben genannte case-Anweisung hinzufügen kann, und setze sie anstelle der case-Anweisung, aber ich würde gerne wissen, ob es anders geht, ohne eine neue Variable zu verwenden?

Vielen Dank im Voraus

+0

Sie bitte die gesamte Abfrage erstellen und die Fehlermeldung – Lamak

+0

'Fall, wenn‚a'' der nichts testen - was testen Sie, um zu sehen, ob es ist ‚a‘? Es sollte entweder die Form "case, wenn irgendein Feld =" a "dann ..." oder alternativ "case einigefield wenn" a "dann ...". Und wie bereits erwähnt, müssen Sie das Schlüsselwort "end" setzen, um die case-Anweisung zu beenden. – SlimsGhost

+0

Wenn es sich nicht um eine Klassenzuweisung handelt, die Ihnen die Verwendung der CASE-Anweisung erklärt, sieht das für mich wie ein Code-Geruch aus. Erwäge, eine Tabelle mit Namen zu erstellen, indem du ein 'INNER JOIN' machst. Auch die Syntax für ein 'CASE' ist 'CASE WHEN' ... Sie verpassen das' something', das gegen die 'WHEN' Werte getestet wird. –

Antwort

0

Sie sind nicht alles in Ihrem Fall Aussage zu vergleichen ... versuchen Sie stattdessen so etwas wie dies, das, was auch immer Ihre Schüler im Vergleich zu der Logik, die Sie prüfen, gegen wollen.

DECLARE @student char(1) = 'b' 
DECLARE @intro nvarchar(80) = 'Hi!!! My Name is ' 
SET @intro = @intro + 
        CASE 
         WHEN @student = 'a' THEN 'Ashley' 
         WHEN @student = 'b' THEN 'Bernard' 
         WHEN @student = 'c' THEN 'Cassie' 
         ELSE '' 
        END 

SELECT @intro 
1

Ihre CASE WHEN Bedingung sollte mit 2 Werten verglichen werden.

DECLARE @student char(1) = 'c' 
DECLARE @intro nvarchar(80) = 'Hi!!! My Name is ' + 
      CASE @student WHEN 'a' THEN 'Ashley' WHEN 'b' THEN 'Bernard' WHEN 'c' THEN 'Cassie' END 
SELECT @intro 
Verwandte Themen