我有一個SQL Server存儲過程SQL語句中選擇使用WHERE子句這樣的:SQL - 我如何使用基於參數
Select (fields)
From Table
Where Testname like @SearchLetter + '%'
我需要做的檢查參數@SearchLetter
如果它是「#」,我需要使參數選擇記錄,字段Testname
以數字字段開始(0-9)
我已經嘗試了幾件事情(如果/選擇等),但我可以似乎沒有得到我需要的東西。
有人知道我該怎麼做?
我有一個SQL Server存儲過程SQL語句中選擇使用WHERE子句這樣的:SQL - 我如何使用基於參數
Select (fields)
From Table
Where Testname like @SearchLetter + '%'
我需要做的檢查參數@SearchLetter
如果它是「#」,我需要使參數選擇記錄,字段Testname
以數字字段開始(0-9)
我已經嘗試了幾件事情(如果/選擇等),但我可以似乎沒有得到我需要的東西。
有人知道我該怎麼做?
嘗試
where Testname like case @SearchLetter
when '#' then '[0-9]' + '%'
else @Searchletter + '%' end
最簡單的方法是
where left(@SearchLetter, 1) between '0' and '9
這是測試變量的第一個字母。他們想要根據變量值測試列的第一個字母。 –
您可以使用
Where Testname like REPLACE(@SearchLetter, '#', '[0-9]') + '%'
假設字符串總是一個字符(或你總是希望這個換人的地方散降至發生)否則使用一個CASE
聲明來檢查確切的平等。
Where Testname like
CASE WHEN @SearchLetter = '#'
THEN '[0-9]'
ELSE @SearchLetter
END + '%'
添加樣本數據和預期的結果.. –