7

私がやろうとしているのは、クエリに日時の値を考慮させるかどうかを決めることです。したがって、ストアドプロシージャでこれを行う必要はありません。

if @considerDate =1
    begin
        select * from table 
        where dateCol = @date
    end
else
    begin 
        select * from table
    end

私は何かをしたいのです

select * from table
where   dateCol = ( case 
                    when  @date is not null
                    then @date
            )

単一のクエリで

4

3 に答える 3

18

ENDキーワードを追加するだけです

SELECT * 
FROM    tableName
WHERE   dateCol =   CASE WHEN @considerDate =1
                         THEN @date 
                         ELSE dateCol 
                    END
于 2013-02-19T00:30:01.817 に答える
5

私があなたを正しく理解しているなら、これはうまくいくはずです:

SELECT * 
FROM Table
WHERE dateCol = 
   CASE WHEN @date is not null then @date ELSE dateCol END
于 2013-02-19T00:29:49.590 に答える