是否可以在SQL Server 2008中执行类似的操作:
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
语句的情况下完成。
答案 0 :(得分:3)
是的,您可以通过连接字符串并在没有内容时使用空字符串来实现。
SELECT
CASE WHEN @var1 = 1 THEN 'message 1 ' ELSE '' END +
CASE WHEN @var2 = 1 THEN 'message 2 ' ELSE '' END as messages
答案 1 :(得分:1)
是的,你可以,你有连接字符串:
CONCAT(
CASE WHEN var1 = 1 THEN 'message 1 ' END,
CASE WHEN var2 = 1 THEN 'message 2 ' END
) as messages