输入连字符或%时,SQL中的Patindex不起作用

时间:2014-03-21 03:54:22

标签: sql

我需要不满足条件的字符列表,例如

Collapse | Copy Code
--Validation for X
declare @test varchar(50)
set @test='ds[fds'
if @test like '%[^0-9a-zA-Z .()/-]%'
print 'invalid -yes'
else
print 'invalid -no'

在上述情况下,我需要输出' ['如果有多个无效字符则需要全部

,这也不满足条件
Collapse | Copy Code
declare @phone varchar(50)
set @phone='212@@f'

select  REPLACE(@phone
               , SUBSTRING(@phone, PATINDEX('%[^0-9a-zA-Z .()/-]%', @phone), 1)
              , '')

但是如果有像#39;%'这样的sql字符则不起作用。在输入字符串中,解决方案是什么。

Collapse | Copy Code
declare @phone varchar(50)
set @phone='212%@@f'

select  
REPLACE(@phone, 
SUBSTRING(@phone, PATINDEX('%[^0-9a-zA-Z .()/-]%', @phone), 1), '')

0 个答案:

没有答案