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
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