数据库字段的正则批量替换例子

123和这个5678替换为123568 最直接的方法就是想到正则表达式 如果是SQLServer则不直接支持,可以借助js的com组件 --测试字符串 declare @inStr varchar(800) set @inStr=123和这个5678 --测试语句 declare @str varchar(800) set @str=var data = +@inStr+;v
'123<和这个>56<7>8'替换为'123568'
最直接的方法就是想到正则表达式
如果是SQLServer则不直接支持,可以借助js的com组件
 
--测试字符串
declare @inStr varchar(800)
set @inStr='123<和这个>56<7>8'
--测试语句
declare @str  varchar(800)
set @str='var data = "'+@inStr+'";var reCat = /<[^>]+>/gi;data.replace(reCat,"");'
declare @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
--输出
/*123568*/
 
如果是Oracle则简单很多,可以直接用SQL语句
 
 
Select REGEXP_REPLACE('123<和这个>56<7>8','<[^>]+>', '') as r FROM dual;
/*
R
123568
*/
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

数据库查询哪个对像里面包含什么字段语句写法: select * from sysobjects o, syscomments s where o.id = s.id and text like %text% and o.xtype = P text 换成需要查的字段 数据库查询哪个对像里面包含表: select o.name from sys.all_sql_modules s,sys
在mysql中可以用group by对查询出的数据分组 select id,service,name FROM service GROUP BY name,service 如果要查看每组数据的总数,可以 select count(*) FROM service GROUP BY name,service 当要查询group by后的总数,可以这样 select count(*) from(s
摘要: SQL的WHERE子句中包含多个AND和OR 示例: SQL解析器在处理操作时会优先处理and操作: 假如有表product字段如下:id、product_id、product_price、product_name,现在要查找产品号为100或者101,并且价格大于200的商品,程序员可能会这样写: select * fr
float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,用于定义货币要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。 mysql create table t1(c1 fl
MySQL 支持的三个浮点类型是 FLOAT、DOUBLE 和 DECIMAL 类型。FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。 与整数一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。比如语句 FLOAT(7,3) 规定显
方式1、 INSERT INTO t1(field1,field2) VALUE (v001,v002); // 明确只插入一条Value 方式2、 INSERT INTO t1(field1,field2) VALUE S (v101,v102),(v201,v202),(v301,v302),(v401,v402); 在插入批量数据时方式2优于方式1. 方式3.1、 INSERT INTO t2(field1,