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