2014-01-27 46 views
0

親愛的我試圖像語句如圖所示where子句, 使用,如何像之間的where子句

select 
    Col1 
from 
    Table 
where 
    Col2 between (case when Col2 ='' or col2 is null then '%' else 'Userinputmin' end) 
and 
    (case when Col2 ='' or col2 is null then '%' else 'Userinputmax' end) 

如果用戶輸入的COL2一個字符值,那麼它會被過濾使用從最大值和最小值,如果用戶不輸入任何值,那麼我想使用所有的值。 謝謝你的幫助。 此致敬禮。

+0

請現在赤,我錯過了寫別的,我有寫用戶輸入,如果用戶輸入一個值,否則我將用全部的值 –

回答

0

難不成@Min和@Max是一個參數

IF @min IS NOT NULL AND @max IS NOT NULL 
    SELECT * FROM Tbl WHERE col BETWEEN @min AND @max 

ELSE 
    SELECT * FROM Tbl 

因爲你在你的aspx頁面做這個,如果你把這個在「背後的代碼」頁面也許這樣的事情會工作。

if (min != null && max != null) 
{ 
    sqlcmd.CommandText = "SELECT * FROM Tbl WHERE col BETWEEN " + min + " AND " + max 
} 
else 
{ 
    sqlcmd.Commandtext = "SELECT * FROM Tbl" 
} 
+0

我不能使用任何編程在這裏,我必須在我的查詢中控制這個,代碼不能改變。 –

+0

我很困惑你想說什麼,你的意思是你不能使用參數?如果是這樣,那麼你如何捕獲用戶輸入沒有參數? – warheat1990

+0

我在aspx頁面中使用此查詢,並使用getfield函數獲取輸入。 –

0

嘗試這樣

select 
    Col1 
from 
    Table 
where 
    (Col2 between 'Userinputmin' AND 'Userinputmax') OR (Col2 Like 'Userinputmin%') OR (Col2 Like 'Userinputmax%')