sql >> Databasteknik >  >> RDS >> Sqlserver

Flera veckodagar lagrade i ett fält

Det du har att göra med kallas bitvisa operatorer.

Här är en bra läsning på den med tydliga enkla exempel.

För fullständighetens skull, här är vad du tittar på uppdelat i kolumner för varje dag i veckan.

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


  1. Läs char,double,int mönster från string i sql

  2. Hur kan jag använda markörer på serversidan med django och psycopg2?

  3. MySQL Insert med While Loop

  4. sql-server:ta bort alla rader i alla tabeller