sql 删除指定字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 删除指定字符串相关的知识,希望对你有一定的参考价值。

sql语句删除指定字符串用replace函数来实现。
工具:sqlserver
2008
方法:
如test表中有如下数据,现在要删除每句中“不”这个字符串:
可用如下语句:
update test set str=replace(str,'不','');执行后结果:
参考技术A 是那个C只出现在首字母位置吧,其他位置没有吧?
update
book
set
an
=
replace(an,'C','');
要是其他位置也有,就该用substring的那个,但是那哥们好像算错位数了,应该取第二位到最后一位的
,那哥们取的是第一位到倒数第二位的
update
book
set
an
=substring(an,2,length(an))
where
an
like
'C%';
参考技术B 1、创建数据库表
2、插入测试数据,并提交
3、编写sql语句,即可实现去掉中括号里面的内容,语句如下:
select
val,

substr(val,
1,
instr(val,
'[')
-
1)
||

substr(val,
instr(val,
']')
+
1)
val2

from
TEST_STR
t
4、如果确定中括号在第一位的话,sql可以更为简化,语句如下:
select
val,

substr(val,
instr(val,
']')
+
1)
val2

from
TEST_STR
t
参考技术C --oracle\mssql用replace
update
table
set
col=replace(col,'-002','-001')
where
col
like
'%-002%'
这个很简单,
str="\data\2003\2003-1-<001-002>.tif
"
str=replace(str,"-002","-001")
现在的str就是你要的结果,
你可以定义一个要贴换的字符串,用来贴换的字符串
如:oldstr="-002"
newstr="-001"
str=replace(str,oldstr,newstr)

sql STUFF用法

1、作用

删除指定长度的字符,并在指定的起点处插入另一组字符。

2、语法

STUFF ( character_expression , start , length ,character_expression )

3、示例

以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串

SELECT STUFF(‘abcdef‘, 2, 3, ‘ijklmn‘)
GO

下面是结果集

aijklmnef

4、参数
character_expression

一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。

start

一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个 character_expression长,则返回空字符串。start 可以是 bigint 类型。

length

一个整数,指定要删除的字符数。如果 length 比第一个 character_expression长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。

5、返回类型
如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。

6、备注
如果结果值大于返回类型支持的最大值,则产生错误。

 





以上是关于sql 删除指定字符串的主要内容,如果未能解决你的问题,请参考以下文章

求SQL语句,删除字段中的首尾指定字符

sql 删去记录中指定字符开头的字符串

如何写sql 语句,能删除字段中某个字符到最后字符串的?

SQL 修改字符串中指定字符

sql stuff函数的语法和作用

Oracle删除字段中的空格、回车及指定字符的实例代码