我有一个需要第6和第7个字符等于“73”的字符串,我尝试使用 LIKE '%73%'
,但问题是有时SQL Server会匹配到字符串中的其他“73”,是否有一种方式只搜索字符串中第6和第7个字符?
非常感谢大家的帮助!
我有一个需要第6和第7个字符等于“73”的字符串,我尝试使用 LIKE '%73%'
,但问题是有时SQL Server会匹配到字符串中的其他“73”,是否有一种方式只搜索字符串中第6和第7个字符?
非常感谢大家的帮助!
使用 SUBSTRING ( 表达式 ,起始位置 , 长度 )
SELECT mycolumn
FROM mytable
WHERE SUBSTRING ( mycolumn ,6 , 2 ) = '73'
使用like
,你可以进行以下操作:
where col like '_____73%'
substring()
的解决方案也非常明智。SUBSTRING
函数:SELECT SUBSTRING(YourColumn,6,2) Result
FROM dbo.YourTable;
SELECT *
FROM dbo.YourTable
WHERE SUBSTRING(YourColumn,6,2) = '73';
尝试使用这个方法来操作 SQL Server
select *
from MyTable
where CHARINDEX('73', MyString) = 6
这个函数会在字符串的第6个位置开始寻找'73'子串的起始位置。
73
的出现位置来获取其索引。使用SUBSTRING会更好。有时它会错过另一个73位于位置6之前的记录。 - Marek Vitekselect last_name from contact where SUBSTRING(last_name, 4,5) = 'ek'
的数字结果:SUBSTRINGCPU 时间 = 16 毫秒,经过时间 = 15 毫秒
CHARINDEXCPU 时间 = 109 毫秒,经过时间 = 106 毫秒
。 - Marek VitekCPU时间=16毫秒,经过时间=21毫秒
,有时甚至比SUBSTRING更长。 - Marek Vitek