我有一種情況,字符串中的第6個和第7個字符需要等於'73'。我嘗試使用LIKE '%73%'
,但問題是有時SQL Server會在其他可能位於字符串中的73上點擊。有沒有辦法只搜索字符串中的第6和第7個字符?T-SQL - 如何搜索字符串中的第n個字符
非常感謝大家的幫助!
我有一種情況,字符串中的第6個和第7個字符需要等於'73'。我嘗試使用LIKE '%73%'
,但問題是有時SQL Server會在其他可能位於字符串中的73上點擊。有沒有辦法只搜索字符串中的第6和第7個字符?T-SQL - 如何搜索字符串中的第n個字符
非常感謝大家的幫助!
使用SUBSTRING(表達,啓動,長度)
SELECT mycolumn
FROM mytable
WHERE SUBSTRING (mycolumn ,6 , 2) = '73'
嘗試此爲SQL Server
select *
from MyTable
where CHARINDEX('73', MyString) = 6
此發現其中字符串 '73' 在位置開始6
使用SUBSTRING
:
SELECT SUBSTRING(YourColumn,6,2) Result
FROM dbo.YourTable;
,你可以作爲一個過濾器使用:
SELECT *
FROM dbo.YourTable
WHERE SUBSTRING(YourColumn,6,2) = '73';
使用like
,你可以這樣做:
where col like '_____73%'
當然,其他的解決方案建議substring()
也都很懂事。
您可能會因使用此項支付性能損失。因爲它必須掃描MyString才能得到它的索引。用SUBSTRING你會更好。它有時會錯過另一個73在位置6之前的記錄。 –
@MarekVitek這是真的,我沒有想到後者... – JohnHC
@MarekVitek:性能損失與子串解決方案相同 – TheGameiswar