Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Obracanie tabeli w SQL (tj. Tabelowanie krzyżowe / tabele krzyżowe)

Wspomina o tym Bill Karwin, ale myślę, że zasługuje na to, aby to wyraźnie podkreślić:

SQL nie robi tego, o co prosisz, więc każde „rozwiązanie”, jakie otrzymasz, będzie utrudnieniem.

Jeśli wiesz , na pewno zawsze będzie działać na Oracle 10, to z pewnością może to zrobić tabela krzyżowa Waltera Mitty'ego. Właściwym sposobem, aby to zrobić, jest najłatwiejsza kombinacja kolejności sortowania w zapytaniu i kodzie aplikacji, aby ułożyć to we właściwy sposób.

  • Działa na innych systemach baz danych,
  • nie ma ryzyka zepsucia innych warstw (pamiętam, że MySQL ma problem na przykład z>255 kolumnami. Czy na pewno masz bibliotekę interfejsu radzi sobie równie dobrze jak sama baza danych?)
  • to (zwykle) nie jest dużo trudniejsze.

Jeśli potrzebujesz, możesz po prostu poprosić o Content_Row_ID s, a następnie poproś o potrzebne wiersze, uporządkowane według CampaignID , ContentRowID , co dałoby każdą (wypełnioną) komórkę w kolejności od lewej do prawej, wiersz po wierszu.

Ps.

Jest wiele rzeczy, które współczesny człowiek uważa, że ​​SQL powinien mieć/zrobić, a których po prostu nie ma. To jedno, generowane zakresy to drugie, rekurencyjne zamknięcie, parametryczne ORDER BY , ustandaryzowany język programowania... lista jest długa. (chociaż trzeba przyznać, że jest sztuczka dla ORDER BY )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dbms_metadata.get_ddl nie działa

  2. Jak uzyskać nazwę dnia z daty w Oracle?

  3. Utwórz plik Excel (.xlsx) za pomocą PL/SQL

  4. ORA-01618

  5. Wszystkie przydatne dynamiczne widoki wydajności 11g