sql >> Databasteknik >  >> RDS >> Sqlserver

I SQL, hur kan jag dela upp värdena i en bitmask totalt i en kommaavgränsad sträng

Detta borde fungera:

SELECT id, name, bitMaskValue,
    SUBSTRING(
            CASE WHEN bitMaskValue & 1 = 1 THEN ',1' ELSE '' END
          + CASE WHEN bitMaskValue & 2 = 2 THEN ',2' ELSE '' END
          + CASE WHEN bitMaskValue & 4 = 4 THEN ',4' ELSE '' END
          + CASE WHEN bitMaskValue & 8 = 8 THEN ',8' ELSE '' END
        , 2, 64) As [values]
FROM yourTable


  1. Få anställda som var aktiva under ett visst datumintervall

  2. Hur förbättrar man denna MySQL-fråga med join?

  3. Hur man väljer rätt databas för ditt företag

  4. mysql distinkta värden utan tom sträng och NULL