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

表の 1 列に 3 つの条件

    あなたの要件を誤解しているかもしれません。そんなに簡単ではありませんか?

    -- 1.) If User want all rows 
    SELECT * FROM @tbl 
    
    -- 2.) If user want rows where ID is NULL
    SELECT * FROM @tbl 
    WHERE ID IS NULL
    
    -- 3.) If user want rows where ID is NOT NULL
    SELECT * FROM @tbl 
    WHERE ID IS NOT NULL 
    

    編集 :したがって、パラメータを使用してそれに応じてフィルタリングしたい場合は、こちらをご覧ください:

    SELECT * FROM @tbl 
    WHERE   @FilterID = 1                      -- returns all rows
    OR    ( @FilterID = 2 AND ID IS NULL)      -- returns all null-rows
    OR    ( @FilterID = 3 AND ID IS NOT NULL)  -- returns all not null rows
    

    CASE も使用できます 推奨されません .



    1. Oracle Date TO_CHAR('Month DD、YYYY')に余分なスペースがあります

    2. 複数の列にわたる一意の値の制約

    3. org.postgresql.util.PSQLException:エラー:リレーションapp_userが存在しません

    4. エルキャピタンにcx_Oracleをインストールする方法