2017-02-28 2 views
1

Ist es möglich, so etwas wie dies in SQL Server 2008 zu tun:Kann ich eine Zeichenfolge mithilfe von SQL Server-Fallanweisungen erstellen?

CASE WHEN var1 = 1 THEN 'message 1 ' END as messages 
CASE WHEN var2 = 1 THEN 'message 2 ' END as messages 

Wo Nachrichten in message 1 message 2 würden, wenn beide Variablen wahr wären.

Ich weiß, ich kann eine Unterabfrage tun und die Nachrichten erstellen, aber ich war neugierig, ob es ohne eine Unterabfrage oder with Anweisung getan werden konnte.

Antwort

3

Ja, Sie können das tun, indem Sie die Zeichenfolgen verketten und eine leere Zeichenfolge verwenden, wenn kein Inhalt vorhanden ist.

SELECT 
    CASE WHEN @var1 = 1 THEN 'message 1 ' ELSE '' END + 
    CASE WHEN @var2 = 1 THEN 'message 2 ' ELSE '' END as messages 
+0

Ich habe nicht erwartet, dass es so einfach zu sein. Vielen Dank. –

1

Ja, Sie können, haben Sie verketten Strings:

CONCAT(
    CASE WHEN var1 = 1 THEN 'message 1 ' END, 
    CASE WHEN var2 = 1 THEN 'message 2 ' END 
) as messages 
Verwandte Themen