0

特定の ID に基づいてデータベースから 2 つの行を取得しました

ID         Address    Res_Address     Office_Address
-------------------------------------------------
4          C 60            0               1
4          D 90            1               0

ResAddress でフラグ res_address 1 を持つ Address を選択し、select ステートメントで Office_address 1 As OfficeAddress を持つフラグを選択したいだけです。ストアド プロシージャを使用したくありません。

4

1 に答える 1

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 | 居住者住所 | オフィスアドレス |
--------------------------------------------
| | 4 | D 90 | C60 |

これが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のデモです

于 2013-07-26T06:00:51.373 に答える