Oracle
 sql >> база данни >  >> RDS >> Oracle

Завъртане на таблица в SQL (т.е. кръстосана табулация / кръстосана таблица)

Бил Карвин споменава това, но мисля, че това заслужава да бъде посочено много ясно:

SQL не прави това, за което искате, така че всяко „решение“, което получите, ще бъде заблуда.

Ако знаете , със сигурност, винаги ще работи на Oracle 10, тогава със сигурност кръстосаната таблица на Walter Mitty може да го направи. Правилният начин да го направите е да работите с най-лесната комбинация от реда на сортиране в заявката и кода на приложението, за да го изложите правилно.

  • Работи на други системи за бази данни,
  • не рискува други слоеве да се провалят (спомням си, че MySQL имаше проблем с>255 колони например. Сигурни ли сте, че библиотеката на интерфейса се справя, както и самата db?)
  • (обикновено) не е толкова по-трудно.

Ако трябва, можете просто да поискате Content_Row_ID първо, след това поискайте каквито и редове, от които се нуждаете, подредени по CampaignID , ContentRowID , което ще ви даде всяка (попълнена) клетка в ред отляво надясно, ред по ред.

Пс.

Има куп неща, които съвременният човек смята, че SQL трябва да има/прави, но просто ги няма. Това е едно, генерираните диапазони са други, рекурсивно затваряне, параметрично ORDER BY , стандартизиран език за програмиране... списъкът продължава. (въпреки че, разбира се, има трик за 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. Рекурсия на заявка към база данни за получаване на йерархичен резултат с помощта на Hibernate - Java

  2. Логически изглед на модела на данни в R12.2

  3. Нормализирайте данните за транзакциите от колони за време и състояние до минути за стойност на състоянието

  4. Вмъкване на нови колони в средата на таблица?

  5. Най-добра практика за пагинация в Oracle?