MODEL 01ANameID Name EMail1 aa john@test.com 2 bb rick@test.com3 cc sally@test.com 4 dd aha@test.comNameID Mode1 C1 D2 B2 D3 B3 C4 A4 B
DECLARE @t TABLE (NameID INT IDENTITY, name VARCHAR(20), email VARCHAR(20), A INT, B INT, C INT, D INT)INSERT INTO @tSELECT 'aa','john@test.com',0, 0, 1, 1UNION ALL SELECT 'bb','rick@test.com',0, 1, 0, 1UNION ALL SELECT 'cc','sally@test.com',0, 1, 1, 0UNION ALL SELECT 'dd','aha@test.com',1, 1, 0, 0-- MODEL 01:SELECT * FROM @t-- MODEL 01A (table 2):SELECT NameID, ModeFROM @t CROSS APPLY ( VALUES (CASE A WHEN 1 THEN 'A' ELSE NULL END) ,(CASE B WHEN 1 THEN 'B' ELSE NULL END) ,(CASE C WHEN 1 THEN 'C' ELSE NULL END) ,(CASE D WHEN 1 THEN 'D' ELSE NULL END)) x(Mode)WHERE Mode IS NOT NULL