各位大神,求个SQL写WHERE 条件:公司名称(字段[CompanyName])不包含(中文、数字、括号、英文)之外的字符-sql server 库的语法,括号包含全角和半角,多谢!
研究了半天,你看看吧!
IF OBJECT_ID('DBO.CompanyName') IS NOT NULL
DROP FUNCTION DBO.CompanyName
GO
CREATE FUNCTION DBO.CompanyName(@S VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^0-9a-zA-Z吖-座()()]%',@S) > 0
BEGIN
SET @S=STUFF(@s,PATINDEX('%[^0-9a-zA-Z吖-座()()]%',@s),1,'')
END
RETURN @S
END
GO
select * from [TABLE] where len(CompanyName) = len(DBO.CompanyName(CompanyName))
非常感谢,刚才试了大多数结果都对,只是有几个包含“做”的没看有其他特殊字符也查出来了,不知是不是超出了“吖-座”范围。
@C#开发人员: 吖-座 改成 吖-咗 试试
@莫宇: 虽然还有些生僻字不认识,例如“䀸”,不过也差不多了。多谢!
这咱理论上应该用正则,sql里面不太好用,可以用用户自定义类型处理,用c#写dll.导入sql中
然后就可以用的sql调用 where foo([companyName])=1
请教,正则怎么写?
@C#开发人员: http://blog.csdn.net/maco_wang/article/details/7439560
网上找了个
研究下:REGEXP 吧,支持正则
来学习的,楼主请忽视