2017-09-29 8 views
1

複数の行を列に格納するフィールドをどのように変換しますか?SQL行を列に変換する

現在のデータ:

COL1 COL2 COL3 
---------------- 
TEST 30 NY 
TEST 30 CA 
TEST2 10 TN 
TEST2 10 TX 

Iが出力になりたい:あなたのサンプルデータに基づいて

COL1 COL2 COL3 COL4 
------------------------ 
TEST 30 NY CA 
TEST2 10 TN TX 
+0

通常はPIVOT機能があります。 –

+0

あなたのrdbmsは何ですか? SQL Server、postgres、oracle? –

+0

ピボットを検索します。例:http://modern-sql.com/use-case/pivot –

答えて

1

、あなたはこれを試すことができます。ピボットを使用する必要はありません。

SELECT col1, 
     col2, 
     MIN(col3) col3, 
     MAX(col3) col4 
    FROM table 
GROUP BY col1, 
      col2 
+0

はい、サンプルデータでは動作しますが、同じcol1とcol2を持つ3つ以上の行がある場合は動作しません。 –

+0

私は知っています。私はcol1とcol2が2行以上ある状況ではrow_number()を使うことができますが、col3とcol4のどちらにあるべき論理的解決方法がまだ決まっている必要があります。 –