12
I'd like to convert a query such as:
SELECT BoolA, BoolB, BoolC, BoolD FROM MyTable;
Into a bitmask, where the bits are defined by the values above.
For example, if BoolA and BoolD were true, I'd want 1001 or 9.
I have something in mind to the effect of:
SELECT
CASE WHEN BoolD THEN 2^0 ELSE 0 END +
CASE WHEN BoolC THEN 2^1 ELSE 0 END +
CASE WHEN BoolB THEN 2^2 ELSE 0 END +
CASE WHEN BoolA THEN 2^3 ELSE 0 END
FROM MyTable;
But I'm not sure if this is the best approach and seems rather verbose. Is there an easy way to do this?