首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 正则表达式,该怎么解决

2012-01-15 
sql正则表达式sql 查询的时候,将 “-”、“_ 、 ”.“ 、“ ”(空) 过滤掉,用正则表达式select 正则表达式(栏位) fr

sql 正则表达式
sql 查询的时候,将 “-”、“_" 、 ”.“ 、“ ”(空) 过滤掉,用正则表达式 

select 正则表达式(栏位) from tablename 

大家帮我看看,不了解正则。

不要 replace 的,因为还有其他的处理,用replace 就逾时。

[解决办法]
用stuff

SQL code
STUFF删除指定长度的字符并在指定的起始点插入另一组字符。语法STUFF ( character_expression , start , length , character_expression ) 参数character_expression由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。start是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。length是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。返回类型如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。注释可以嵌套字符串函数。
[解决办法]
SQL code
看这个例子:SELECT STUFF('a---bcdef', 2, 3, '')--结果abcdefGO
[解决办法]
SQL code
--模仿一下剪剪哥的 出自:  http://blog.csdn.net/jinjazz/archive/2008/12/26/3613974.aspxdeclare @inStr varchar(800)set @inStr='2888123_23-.- 123'--测试语句declare @str  varchar(800)set @str='var data = "'+@inStr+'";var reCat = /[^1234567890]/gi;data.replace(reCat,"");'print @strdeclare @object int declare @r varchar(800)exec sp_OACreate 'MSScriptControl.ScriptControl',@object output   exec sp_OASetProperty @object, 'Language','javascript' exec sp_OAMethod @object, 'eval', @r out,@str select @r 

热点排行