ビル・カーウィンはこれについて言及していますが、これは非常に明確に指摘する価値があると思います:
SQLはあなたが求めていることを実行しないので、あなたが得るどんな「解決策」も恨みになります。
知っている 確かに、これは常にOracle 10で実行されます。そうすれば、WalterMittyのクロス集計で実行できる可能性があります。それを行う正しい方法は、クエリとアプリケーションコードの並べ替え順序の最も簡単な組み合わせを使用して、正しくレイアウトすることです。
- 他のデータベースシステムで動作します
- 他のレイヤーが壊れるリスクはありません(たとえば、MySQLで255列を超える問題が発生したことを覚えています。インターフェイスライブラリを使用してよろしいですか? db自体と同様に対処しますか?)
- (通常は)それほど難しくはありません。
必要に応じて、Content_Row_ID
をリクエストするだけです。 ■最初に、CampaignID
の順に必要な行を要求します。 、ContentRowID
、これにより、各(入力された)セルが左から右に行ごとに表示されます。
追伸
現代人がSQLが持っているべきであると考えていることはたくさんありますが、それはただそこにありません。これは1つであり、生成された範囲は別の再帰的クロージャであり、パラメトリックORDER BY
、標準化されたプログラミング言語...リストは続きます。 (ただし、確かに、ORDER BY
にはトリックがあります。 )