タグ

ブックマーク / qiita.com/suitap (1)

  • 任意のSELECT文から SELECT COUNT(*) FROM (SELECT ~ ) を動的に生成する (ScriptDomを使ったSELECT文の書き換え) - Qiita

    こちらの記事が大変参考になりました(というよりもこちらの記事を見て思い付きました)。 T-SQL の パーサーとジェネレーター(ScriptDom)の紹介 - お だ のスペース ScriptDom でクエリを改変する - お だ のスペース 動機 ページング処理用に検索結果の総レコード数を取得するため、検索 SQL を文字列置換して SELECT COUNT(*) FROM ([元の SQL]) に書き換えようと頑張っているコードを見かけました。 しかし、単純に SQL を COUNT(*) のクエリで包むだけでは不十分で、内側の SQL から ORDER BY 句を取り除く必要があります。(一部の場合を除きインラインビュー内には ORDER BY 句が書けない) これらの SQL 文の操作において、単純な文字列置換では SQL コメントを含む場合などに対応しきれなくなる可能性があります

    任意のSELECT文から SELECT COUNT(*) FROM (SELECT ~ ) を動的に生成する (ScriptDomを使ったSELECT文の書き換え) - Qiita
  • 1