40

4 つのパラメーターに基づいてテーブルから情報をフェッチするストアド プロシージャがあります。

パラメータに基づいて値を取得したいのですが、パラメータが NULL の場合、そのパラメータはチェックされません。したがって、4 つのパラメーターがすべて null の場合、テーブル全体が表示されます。

これは私のSPです(ご覧のとおり、これは1つのパラメーターatmでのみ機能します):

CREATE PROCEDURE myProcedure
    @Param1 nvarchar(50),
    @Param2 nvarchar(50),
    @Param3 nvarchar(50),
    @Param4 nvarchar(50)
AS
BEGIN
    IF(@Param1 IS NULL)
        BEGIN
            SELECT Id, col1, col2, col3, col4 FROM myTable
        END
    ELSE
        BEGIN
            SELECT Id, col1, col2, col3, col4 FROM myTable WHERE col1 LIKE @Param1+'%'
        END
END

すべての可能な組み合わせ (15 個の IF) を使用せずにこれを行う方法はありますか?IF

4

8 に答える 8