查找两个给定特殊字符

时间:2018-04-10 10:41:35

标签: sql sql-server sql-server-2016

是否有任何最简单的方法可以在两个给定的特殊字符之间找到字符串的长度。

这样的事情:

select string from table1 where len(string) between '-' and ','

例如:341267-8763,68978

查询应返回4(即8763的长度)

3 个答案:

答案 0 :(得分:2)

SELECT CHARINDEX(',', '341267-8763,68978') - CHARINDEX('-', '341267-8763,68978') - 1

4

答案 1 :(得分:1)

使用CHARINDEX()功能

select string, CHARINDEX(',', string) - CHARINDEX('-', string) Lengths
from table t

答案 2 :(得分:0)

请使用CHARINDEX(MatchCharacter,SourceString)

DECLARE @string VARCHAR(2000),
@startChar VARCHAR,
@EndChar VARCHAR

SET @string = 'It is a established @fact that #a reader'
SET @startChar = '@' 
SET @EndChar = '#'

SELECT @string Source, CHARINDEX(@EndChar, @string) - CHARINDEX(@startChar, @string) - 1 LENGTH

<强>结果

Source                                      LENGTH
------------------------------------------- -----------
It is a established @fact that# a reader    10