我根据特定的id
从数据库中获得了两行ID Address Res_Address Office_Address
-------------------------------------------------
4 C 60 0 1
4 D 90 1 0
我只想在ResAddress中选择具有标志res_address 1的地址,并通过select语句选择具有Office_address 1作为OfficeAddress的标志。 我不想使用存储过程。
答案 0 :(得分:2)
尝试
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
示例输出:
| ID | RESIDENTADDRESS | OFFICEADDRESS | ---------------------------------------- | 4 | D 90 | C 60 |
这是 SQLFiddle 演示
更新如果我理解您的评论,您可以使用COALESCE()
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
这是 SQLFiddle 演示