Reputation: 2577
Is it possible to do something like this in SQL server 2008:
CASE WHEN var1 = 1 THEN 'message 1 ' END as messages
CASE WHEN var2 = 1 THEN 'message 2 ' END as messages
Where messages would result in message 1 message 2
if both variables were true.
I do realize I can do a subquery and create the messages, but I was curious as to whether it could be done without a subquery or with
statement.
Upvotes: 1
Views: 2401
Reputation:
Yes you can, you have concatenate strings:
CONCAT(
CASE WHEN var1 = 1 THEN 'message 1 ' END,
CASE WHEN var2 = 1 THEN 'message 2 ' END
) as messages
Upvotes: 1
Reputation: 110111
Yes, you can do that by concatenating the strings and using an empty string when there is no content.
SELECT
CASE WHEN @var1 = 1 THEN 'message 1 ' ELSE '' END +
CASE WHEN @var2 = 1 THEN 'message 2 ' ELSE '' END as messages
Upvotes: 4