2017-02-28 1 views
1

は、SQL Server 2008では、このような何かをすることが可能です:両方の変数が真であれば、メッセージはmessage 1 message 2につながるSQL Serverのcase文を使用して文字列を作成できますか?

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

私はサブクエリを実行してメッセージを作成することができますが、サブクエリかwithステートメントなしで実行できるかどうか不思議でした。

答えて

3

はい、文字列を連結し、コンテンツがない場合は空の文字列を使用することで可能です。

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

を、私はそれが簡単であることを期待していませんでした。ありがとうございました。 –

1

はいあなたは、あなたがCONCATENATE文字列を持つことができます。

CONCAT(
    CASE WHEN var1 = 1 THEN 'message 1 ' END, 
    CASE WHEN var2 = 1 THEN 'message 2 ' END 
) as messages 
関連する問題