sql >> Database teknologi >  >> RDS >> Oracle

Inkonsekvent Transponering

Du kan bruge et fælles tabeludtryk til at give hver køber en ordre hos leverandøren, og derefter bare lave en almindelig sag for at sætte dem i kolonner;

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;

En SQLfiddle at teste med .



  1. programmæssig kontrol af åben forbindelse i JDBC

  2. Sådan bruger du QUERY i expdp til kun at udtrække de sidste 3 måneders data

  3. MySQL:Begrænset antal modtagne resultater baseret på en kolonneværdi | Kombination af forespørgsler

  4. Hvordan kan jeg lave HTTP-anmodninger fra SQL-serveren?