I'm not totally sure what you are asking for but I think you can use CASEsomething like:DECLARE @sample TABLE ( [index] INT , [switcher] CHAR(1) , [val1] TINYINT , [val2] TINYINT , [val3] TINYINT , [val4] TINYINT )INSERT @sample VALUES (1, 'A', 0, 1, 2, 3) , (2, 'A', 7, 5, 2, 1) , (3, 'B', 5, 3, 1, 9) , (4, 'B', 1, 1, 1, 1)SELECT * FROM @sampleSELECT [index] , [switcher] , CASE [switcher] WHEN 'A' THEN [val1] WHEN 'B' THEN [val3] END AS [SwitchedValue1] , CASE [switcher] WHEN 'A' THEN [val2] WHEN 'B' THEN [val4] END AS [SwitchedValue2]FROM @sample
Results:(4 row(s) affected)index switcher val1 val2 val3 val4----------- -------- ---- ---- ---- ----1 A 0 1 2 32 A 7 5 2 13 B 5 3 1 94 B 1 1 1 1(4 row(s) affected)index switcher SwitchedValue1 SwitchedValue2----------- -------- -------------- --------------1 A 0 12 A 7 53 B 1 94 B 1 1(4 row(s) affected)
Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION