Larnu already gives you a good answer, but in case of SendSms = 0
it 'ill returns EveryDay
. Thus I'm posting this answer to cover it
SELECT *,
IIF(SendSms = 1,
IIF(EveryDay = 1, 'EveryDay',
STUFF(CONCAT(CASE WHEN Sun = 1 THEN ',Sunday' END,
CASE WHEN Mon = 1 THEN ',Monday' END,
CASE WHEN Tue = 1 THEN ',Tuesday' END,
CASE WHEN Wed = 1 THEN ',Wednesday' END,
CASE WHEN Thu = 1 THEN ',Thuresday' END,
CASE WHEN Fri = 1 THEN ',Friday' END,
CASE WHEN Sat = 1 THEN ',Saturday' END
), 1, 1, ''
)
)
, 'No SMS') Days
FROM
(
VALUES
(1, 1, 0, 1, 0, 0, 1, 0, 0, 0),
(2, 1, 1, 0, 0, 0, 0, 0, 0, 0),
(3, 0, 1, 0, 0, 0, 0, 0, 0, 1)
) T(ID, SendSms, EveryDay, Sun, Mon, Tue, Wed, Thu, Fri, Sat)
Online Demo