3

現在使用しています

If @City > 0 then
    SELECT * FROM table1 Where Column1 < @City
ELSE
    SELECT * FROM table1

1つのクエリで同じ効果を得るにはどうすればよいですか?

4

3 に答える 3

4

クエリに条件を入力するだけです。

select *
  from table1
 where ( @city > 0
         and column1 < @city )
    or @city <= 0 

ただし、注意してください。これにより、オプティマイザ少し混乱し、最初のクエリのパフォーマンスが低下する可能性があります。すべてのテストと同様に、実装前にテストします。

于 2013-02-09T12:28:02.003 に答える
0

これを試して:

select *
  from table1
 where column1 < @city
    or @city <= 0 
于 2013-02-09T12:32:39.293 に答える
0

もう1つのオプション

SELECT * 
FROM table1 
WHERE Column1 < CASE WHEN @City > 0 
                     THEN @City 
                     ELSE Column1 + 1 END
于 2013-02-10T00:35:54.820 に答える