Альтернатива для оператора MAX на битовых полях - PullRequest
18 голосов
/ 31 января 2012

У меня есть таблица с разрешениями, которая имеет несколько битовых полей.Я хочу сгруппировать строки в этой таблице и получить результат с высшими разрешениями.Итак, с этой таблицей:

UserId, Permisssion1,Permission2, Permisssion3 

С этим в строках
13,1,0,0
13,0,1,0

Я хочу получить:
13,1,1,0

Проблема в том, что оператор MAX не работает с битовыми полями.Как сделать это эффективным способом?(без использования CASE)

1 Ответ

48 голосов
/ 31 января 2012

Так же просто, как ...

MAX(CAST(Permisssion1 AS tinyint))

У вас не так много других вариантов ...

...