sql >> Database >  >> RDS >> Oracle

Inconsistent transponeren

Je zou een algemene tabeluitdrukking kunnen gebruiken om elke koper een bestelling te geven binnen de leverancier, en dan gewoon een normale casus doen om ze in kolommen te plaatsen;

WITH cte AS (
  SELECT supplier, buyer, 
    ROW_NUMBER() OVER (PARTITION BY supplier ORDER BY buyer) rn
  FROM Table1
)
SELECT supplier, 
       MAX(CASE WHEN rn=1 THEN buyer END) buyer1,
       MAX(CASE WHEN rn=2 THEN buyer END) buyer2,
       MAX(CASE WHEN rn=3 THEN buyer END) buyer3
FROM cte
GROUP BY supplier;

Een SQLfiddle om mee te testen .



  1. Onjuist sleutelbestand voor tabel '/tmp/#sql_3c51_0.MYI' probeer het te repareren

  2. Hoe deze MySQL-tabel op de meest performante manier opvragen?

  3. SQL Server - Een tabel vergrendelen totdat een opgeslagen procedure is voltooid

  4. hoe Arabisch in te voegen in mysql vanuit asp.net C#