Thursday, September 22, 2011

Pivot without Aggregation(Example)

CREATE TABLE Property(USERID int,PROPERTY_NAME varchar(50),PROPERTY_VALUE varchar(200))


INSERT INTO Property(USERID,PROPERTY_NAME,PROPERTY_VALUE)
VALUES(101,'Name','aaaaaaa'),
(101,'Occupation','bbbbb'),
(102,'EmergencyContact','ccccccc'),
(103,'Occupation','bbbbb'),
(103,'Married ','Y')






SELECT DISTINCT PKEYS.USERID AS USERID, B.PROPERTY_VALUE AS NAME,C.PROPERTY_VALUE AS Occupation, D.PROPERTY_VALUE AS Married , E.PROPERTY_VALUE AS EmergencyContact
FROM(SELECT USERID,PROPERTY_NAME FROM Property ) PKEYS
LEFT OUTER JOIN Property B ON PKEYS.USERID = B.USERID AND B.PROPERTY_NAME= 'Name'
LEFT OUTER JOIN Property C ON PKEYS.USERID = C.USERID AND C.PROPERTY_NAME= 'Occupation'
LEFT OUTER JOIN Property D ON PKEYS.USERID = D.USERID AND D.PROPERTY_NAME= 'Married'
LEFT OUTER JOIN Property E ON PKEYS.USERID = E.USERID AND E.PROPERTY_NAME= 'EmergencyContact'




--Result
USERID    NAME    Occupation    Married    EmergencyContact
101         aaaaaaa         bbbbb        NULL     NULL
102            NULL       NULL         NULL    ccccccc
103            NULL       bbbbb         Y           NULL

No comments:

Post a Comment