Могу ли я преобразовать кучу логических столбцов в одно растровое изображение в PostgreSQL?
Я хотел бы преобразовать запрос, такой как:
SELECT BoolA, BoolB, BoolC, BoolD FROM MyTable;
В битовую маску, где биты определяются значениями выше.
Например, еслиBoolA
а такжеBoolD
были правдой, я бы хотел1001
или же9
.
Я имею в виду что-то такое:
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;
Но я не уверен, что это лучший подход и кажется довольно многословным. Есть простой способ сделать это?