sql >> Database >  >> RDS >> Oracle

Een tabel draaien in SQL (d.w.z. kruistabel / kruistabel)

Bill Karwin vermeldt dit, maar ik denk dat dit het verdient om er heel duidelijk op te worden gewezen:

SQL doet niet wat je vraagt, dus elke "oplossing" die je krijgt zal een kludge zijn.

Als je weet , het zal zeker altijd op een Oracle 10 draaien, dan zou de kruistabel van Walter Mitty het misschien kunnen doen. De juiste manier om dit te doen, is door de eenvoudigste combinatie van sorteervolgorde in de query en toepassingscode te gebruiken om het goed uit te leggen.

  • Het werkt op andere databasesystemen,
  • het loopt niet het risico dat andere lagen kapot gaan (ik herinner me dat MySQL een probleem had met bijvoorbeeld>255 kolommen. Weet je zeker dat je interfacebibliotheek hebt? cops evenals de db zelf?)
  • het is (meestal) niet zo veel moeilijker.

Als het nodig is, kun je gewoon om de Content_Row_ID . vragen s eerst, vraag dan om de rijen die je nodig hebt, geordend op CampaignID , ContentRowID , waarmee u elke (gevulde) cel van links naar rechts regel voor regel krijgt.

Ps.

Er zijn een heleboel dingen waarvan de moderne mens denkt dat SQL zou moeten hebben/doen die er gewoon niet zijn. Dit is één, gegenereerde bereiken is een andere, recursieve afsluiting, parametrische ORDER BY , gestandaardiseerde programmeertaal... de lijst gaat maar door. (hoewel, toegegeven, er is een truc voor ORDER BY )



  1. Early bird inschrijvingen geopend voor PGDay.IT 2011

  2. Querygeschiedenis bekijken in SQL Server Management Studio

  3. 10 technieken voor het maken van formulieren in Microsoft Access

  4. Hoe SQL Server-tabelwijzigingen te controleren met behulp van c#?