Reputation: 55
I got two rows from database based on particular id
ID Address Res_Address Office_Address
-------------------------------------------------
4 C 60 0 1
4 D 90 1 0
I just want to select Address having flag res_address 1 in ResAddress And flag having Office_address 1 As OfficeAddress by select statement. I don't want to use stored procedure.
Upvotes: 0
Views: 85
Reputation: 92845
Try
SELECT ID,
MIN(CASE WHEN Res_Address = 1 THEN Address END) ResidentAddress,
MIN(CASE WHEN Office_Address = 1 THEN Address END) OfficeAddress
FROM
(
SELECT -- your subquery that returns two rows goes here
) q
GROUP BY ID
Sample output:
| ID | RESIDENTADDRESS | OFFICEADDRESS | ---------------------------------------- | 4 | D 90 | C 60 |
Here is SQLFiddle demo
UPDATE If I understand correctly your comment you can use COALESCE()
for that
SELECT ID,
COALESCE(MIN(CASE WHEN Res_Address = 1 THEN Address END), '0') ResidentAddress,
COALESCE(MIN(CASE WHEN Office_Address = 1 THEN Address END), '0') OfficeAddress
FROM
(
SELECT * FROM Table1
) q
GROUP BY ID
Here is SQLFiddle demo
Upvotes: 2