私には問題があり、今はアイデアがありません。
データベース アプリケーションの最適化を行っています。この種のクエリを実行する数百回呼び出されるメソッド (Method_A) があります。
SELECT
A.a,
ISNULL(A.b, 'Nothing') As alias_b
ISNULL(B.a, 'N/A') as alias_c
FROM A
LEFT JOIN B on A.fk=B.fk AND B.a = 'SOME_KEY'
WHERE A.c = 'SOME_OTHER_KEY'
次のような1行になります。
[a ][alias_b][ alias_c ]
[ val_a ][ val_b ][val_c|'N/A']
コードを最適化するためにやりたいことは、Method_A の前に単一のリクエストを作成し、すべてのデータを取得して Method_A がクライアント側でフィルター処理するようにすることです。(これは .NET でコーディングされています。OleDBConnection を DataSet に置き換えています)
どうすればこの種の動作を達成できますか? クライアント側の条件でフィルタリングすると、結合が何も返さない場合に「N/A」を取得するのではなく、行を取得しないだけであり、まだ val_a と val_b が必要なため、これは問題です。
ご協力ありがとうございました!