Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wiele dni tygodnia przechowywanych w jednym polu

To, z czym masz do czynienia, jest określane jako operatory bitowe.

Oto dobra lektura na nim z jasnymi prostymi przykładami.

Ze względu na kompletność, oto, na co patrzysz, podzielone na kolumny na każdy dzień tygodnia.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić, czy IDENTITY_INSERT jest ustawione na ON lub OFF w SQL Server?

  2. Plan wykonania widoku partycjonowanego

  3. Plan oparty na zestawach działa wolniej niż funkcja o wartości skalarnej z wieloma warunkami

  4. Jak przesyłać strumieniowo dane z/do pól BLOB programu SQL Server?

  5. Jaki jest zakres CONTEXT_INFO w SQL Server?