Бил Карвин споменава това, но мисля, че това заслужава да бъде посочено много ясно:
SQL не прави това, за което искате, така че всяко „решение“, което получите, ще бъде заблуда.
Ако знаете , със сигурност, винаги ще работи на Oracle 10, тогава със сигурност кръстосаната таблица на Walter Mitty може да го направи. Правилният начин да го направите е да работите с най-лесната комбинация от реда на сортиране в заявката и кода на приложението, за да го изложите правилно.
- Работи на други системи за бази данни,
- не рискува други слоеве да се провалят (спомням си, че MySQL имаше проблем с>255 колони например. Сигурни ли сте, че библиотеката на интерфейса се справя, както и самата db?)
- (обикновено) не е толкова по-трудно.
Ако трябва, можете просто да поискате Content_Row_ID
първо, след това поискайте каквито и редове, от които се нуждаете, подредени по CampaignID
, ContentRowID
, което ще ви даде всяка (попълнена) клетка в ред отляво надясно, ред по ред.
Пс.
Има куп неща, които съвременният човек смята, че SQL трябва да има/прави, но просто ги няма. Това е едно, генерираните диапазони са други, рекурсивно затваряне, параметрично ORDER BY
, стандартизиран език за програмиране... списъкът продължава. (въпреки че, разбира се, има трик за ORDER BY
)