ちょっと私は簡単に答えを見つけることができないことに驚いています。基本的には、値が1の場合にのみテーブルに参加しようとしています。私はケースステートメントを使用しようとしましたが、これはうまくいかないので、私は辛抱強く、いくつかの提案を高く評価します。値が1の場合にのみ結合します
基本的に私は渡されたテーブル@courseSectionとローカル変数@isSelectall = 0を持っています。だから、@courseSectionテーブルの-1をチェックしたいと思います。
擬似コード:
If @courseSection contains -1 then
@isSelectAll = 1
end
if @isSelect all = 1 then
inner join course s on c.id = cs.id
end
これはあまりにもすべてのSelectステートメントの内側にあります。どのようにこれを達成するための助言のための事前に感謝の誰にも提案をしています。
「INNER JOINコースs ON c.id = cs.id AND @isSelectAll = 1'」というように、「ON」に入れることができます。つまり、 '@isSelectAll <> 1'のときに' INNER JOIN'が0レコードを見つけるので、 'LE NOT JOIN'に' IS NOT NULL'を使って結合を変更しなければならないかもしれません。 – Santi
Oracle? MS-SQL? MYSQL?より多くの情報が必要です。 – gdoron