2017-02-28 61 views
1

是否有可能做這樣的事情在SQL Server 2008:我可以使用sql server case語句構建一個字符串嗎?

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

哪裏會導致message 1 message 2消息如果兩個變量是真實的。

我知道我可以做一個子查詢並創建消息,但我很好奇它是否可以在沒有子查詢或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

當然可以,你必須連接字符串:

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