Bill Karwin to zmiňuje, ale myslím si, že si to zaslouží, abychom na to velmi jasně poukázali:
SQL nedělá to, co požadujete, takže jakékoli „řešení“, které dostanete, bude jen změť.
Pokud víte , určitě to vždy poběží na Oracle 10, pak jistě, křížová tabulka Waltera Mittyho by to mohla udělat. Správný způsob, jak to udělat, je pracovat s nejsnazší kombinací pořadí řazení v dotazu a kódu aplikace, abyste to správně rozložili.
- Funguje na jiných databázových systémech,
- Neriskuje to žádné další vrstvy, které by mohly selhat (pamatuji si, že MySQL mělo například problém s>255 sloupci. Jste si jisti, že knihovnu rozhraní? zvládá stejně dobře jako db samotná?)
- to (obvykle) není o tolik těžší.
Pokud potřebujete, stačí požádat o Content_Row_ID
nejprve se zeptejte na libovolné řádky, které potřebujete, seřazené podle CampaignID
, ContentRowID
, což by vám poskytlo každou (vyplněnou) buňku v pořadí zleva doprava, řádek po řádku.
Ps.
Existuje spousta věcí, o kterých si moderní člověk myslí, že by SQL měl mít/dělat, ale prostě tam nejsou. Toto je jeden, generované rozsahy jsou další, rekurzivní uzávěr, parametrický ORDER BY
, standardizovaný programovací jazyk... seznam pokračuje. (ačkoli, pravda, existuje trik pro ORDER BY
)