Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich in SQL die Werte in einer Bitmaskensumme in eine durch Kommas getrennte Zeichenfolge aufteilen?

Das sollte funktionieren:

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