sql >> Databáze >  >> RDS >> Sqlserver

Více dní v týdnu uložených v jednom poli

To, s čím máte co do činění, se nazývá bitové operátory.

Zde je dobré čtení na tom s jasnými jednoduchými příklady.

Pro úplnost uvádíme to, na co se díváte, rozdělené do sloupců pro každý den v týdnu.

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. Chyba PostgreSQL 9.0:sloupec t.tgisconstraint neexistuje

  2. Speciální znaky Oracle

  3. MySQL - univerzální způsob, jak získat cca. velikost řádku v bajtech

  4. SQL RANK() versus ROW_NUMBER()