Select Statement with Temp Column driven by Bitmask
SQL Server has bitwise operations that you can use.
The &amp; symbol provides an AND operation comparing bit to bit. Source: https://msdn.microsoft.com/en-us/library/ms174965.aspx

Here is code (not extended to all role cases) that should work:

CREATE TABLE #t
([Name] varchar(30),
[Role] int)

INSERT INTO #t
VALUES ('Jon',77)

SELECT [Name],
    CASE 
    WHEN [Role] &amp; 1 = 1 THEN 'One '
    ELSE ''
    END
    +
    CASE 
    WHEN [Role] &amp; 2 &gt;= 2 THEN 'Two '
    ELSE ''
    END
    +
    CASE 
    WHEN [Role] &amp; 4 &gt;= 4 THEN 'Three '
    ELSE ''
    END
    +
    CASE 
    WHEN [Role] &amp; 8 &gt;= 8 THEN 'Four '
    ELSE ''
    END
FROM #t


The comparison only occurs where binary digits exist for both numbers, so we only have to care about the leading 1 of the result, thus the inequality.