sql >> データベース >  >> RDS >> Sqlserver

パラメータがnullの場合、SQLはWHEREの一部を無視します

    のようなものはどうですか

    SELECT Id, col1, col2, col3, col4 
    FROM    myTable 
    WHERE   col1 LIKE @Param1+'%'
    OR      @Param1 IS NULL
      

    この特定のケースでは、使用することもできます

    SELECT Id, col1, col2, col3, col4 
    FROM    myTable 
    WHERE   col1 LIKE ISNULL(@Param1,'')+'%'
      

    しかし、一般的には次のようなものを試すことができます

    SELECT Id, col1, col2, col3, col4 
    FROM    myTable 
    WHERE   (condition1 OR @Param1 IS NULL)
    AND     (condition2 OR @Param2 IS NULL)
    AND     (condition3 OR @Param3 IS NULL)
    ...
    AND     (conditionN OR @ParamN IS NULL)
      

    1. MYSQLからの日付をフォーマットする方法

    2. Pythonを使用して巨大なXLSデータをOracleにロードする

    3. openprojectのデータを失うことなくpostgresqlデータベースを10から12にアップグレードする方法

    4. EXPORT AS INSERT STATEMENTS:しかし、SQL Plusでは、行は2500文字を上書きします!