Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Plusieurs jours de la semaine stockés dans un champ

Ce à quoi vous avez affaire est appelé opérateurs au niveau du bit.

Voici un bonne lecture dessus avec des exemples clairs et simples.

Par souci d'exhaustivité, voici ce que vous voyez, réparti en colonnes pour chaque jour de la semaine.

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