Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Vários dias da semana armazenados em um campo


O que você está lidando é chamado de operadores bit a bit.

Aqui está um boa leitura nele com exemplos simples e claros.

Por uma questão de completude, aqui está o que você está vendo dividido em colunas para cada dia da semana.
DECLARE @bitwise TABLE (someValue TINYINT)

INSERT INTO @bitwise (someValue)
SELECT 1 UNION
SELECT 5 UNION
SELECT 127

SELECT someValue, CASE WHEN (1&someValue)=1 THEN 'SUNDAY' END
                , CASE WHEN (2&someValue)=2 THEN 'MONDAY' END
                , CASE WHEN (4&someValue)=4 THEN 'TUESDAY' END
                , CASE WHEN (8&someValue)=8 THEN 'WEDNESDAY' END
                , CASE WHEN (16&someValue)=16 THEN 'THURSDAY' END
                , CASE WHEN (32&someValue)=32 THEN 'FRIDAY' END
                , CASE WHEN (64&someValue)=64 THEN 'SATURDAY' END

FROM @bitwise