SQL Server PatIndex点和连字符是什么意思? (PATINDEX( '%[0-9 .-]%')

时间:2017-01-05 16:36:52

标签: sql-server tsql sql-server-2005

我用Google搜索并用Google搜索然后我用Google搜索了一些......但是,我无法想出这个。

以下SQL Server命令(在9之后)中点和连字符的含义是什么......

PATINDEX( '%[0-9 .-]%'

以下是工作中的代码......

declare @tv_raw table(recnum int identity(1, 1) primary key, rawdata nvarchar(max))
insert into @tv_raw(rawdata) values('Washington 40 New Orleans 32')
insert into @tv_raw(rawdata) values('St. Louis 23 Detroit 27')    

select SubString(rawdata, PatIndex('%[0-9.-]%', rawdata)+3,PatIndex('%[0-9.-]%', rawdata))
from @tv_raw

1 个答案:

答案 0 :(得分:1)

Patindex返回..

  

返回指定表达式中第一次出现的模式的起始位置,如果找不到该模式,则返回零,对所有有效的文本和字符数据类型

因此它返回在模式中找到的任何字符的第一个位置...参见下面的修改示例

declare @tv_raw table(recnum int identity(1, 1) primary key, rawdata nvarchar(max))
insert into @tv_raw(rawdata) values('Wa0shington- 40 New Orleans 32')
insert into @tv_raw(rawdata) values('St.- Louis 23 Detroit 27')    

select PatIndex('%[0-9-]%', rawdata)
from @tv_raw

输出

3
4