Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server PatIndex点和连字符是什么意思?(帕蒂指数(';%[0-9-]';)_Sql Server_Tsql_Sql Server 2005 - Fatal编程技术网

Sql server SQL Server PatIndex点和连字符是什么意思?(帕蒂指数(';%[0-9-]';)

Sql server SQL Server PatIndex点和连字符是什么意思?(帕蒂指数(';%[0-9-]';),sql-server,tsql,sql-server-2005,Sql Server,Tsql,Sql Server 2005,我搜索了又搜索,然后我又搜索了一些……然而,我无法理解这一点 在下面的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') ins

我搜索了又搜索,然后我又搜索了一些……然而,我无法理解这一点

在下面的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
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

点和连字符只是[]中所包含列表中的其他搜索条件。因此,任何数字0-9,即0,1,2…,8,9或点或连字符。