次の構造を持つテーブルがあります。
id key data
1 A 10
1 B 20
1 C 30
これらのキーを列として取得し、値を行として取得するように、クエリを作成する必要があります。
例:
id A B C
1 10 20 30
ユニオンとケースを使用してみましたが、1 行ではなく 3 行になります
なにか提案を?
次の構造を持つテーブルがあります。
id key data
1 A 10
1 B 20
1 C 30
これらのキーを列として取得し、値を行として取得するように、クエリを作成する必要があります。
例:
id A B C
1 10 20 30
ユニオンとケースを使用してみましたが、1 行ではなく 3 行になります
なにか提案を?
これを行う最も簡単な方法は次のとおりです。
SELECT DISTINCT "id",
(SELECT "data" FROM Table1 WHERE "key" = 'A') AS "A",
(SELECT "data" FROM Table1 WHERE "key" = 'B') AS "B",
(SELECT "data" FROM Table1 WHERE "key" = 'C') AS "C"
FROM Table1
または、PIVOT を使用できます。
SELECT * FROM
(SELECT "id", "key", "data" FROM Table1)
PIVOT (
MAX("data")
FOR ("key") IN ('A', 'B', 'C'));