आपको एक PIVOT
. आप या तो एक स्टेटिक पिवोट का उपयोग कर सकते हैं जहां आप कॉलम के मूल्यों को बदलने के लिए जानते हैं या एक डायनामिक पिवोट जहां कॉलम निष्पादन समय तक अज्ञात हैं।
स्थिर धुरी (देखें SQL Fiddle with Demo ):
select *
from
(
select memid, Condition_id, Condition_Result
from t
) x
pivot
(
sum(condition_result)
for condition_id in ([C1], [C2], [C3], [C4])
) p
गतिशील धुरी (देखें SQL Fiddle with Demo ):
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.condition_id)
FROM t c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT memid, ' + @cols + ' from
(
select MemId, Condition_id, condition_result
from t
) x
pivot
(
sum(condition_result)
for condition_id in (' + @cols + ')
) p '
execute(@query)
दोनों एक ही परिणाम उत्पन्न करेंगे।