2013-02-09 68 views
3

目前我使用SQL案例不平等

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

我怎樣才能實現在單個查詢同樣的效果?

回答

4

你簡單地把狀態查詢:

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

即使被警告;這可以輕微混淆優化器,這可能會使您的第一個查詢性能較差。就像在實施前測試一切一樣。

0

試試這個:

select * 
    from table1 
where column1 < @city 
    or @city <= 0 
+0

日Thnx。所有的答案達到了我尋找的結果 – Alice 2013-02-10 03:49:01

+0

@Rohan但是,顯然,我是最短的:) – 2013-02-10 09:06:55

0

還有一個選項

SELECT * 
FROM table1 
WHERE Column1 < CASE WHEN @City > 0 
        THEN @City 
        ELSE Column1 + 1 END