sql替换查询结果字符串中的字符
用replace函数将年,月替换成横杠,日替换成空,从而形成tb的标准日志格式,然后再做比较。这里给出replace的示例:
sql字符串替换 c语言字符表
select replace(replace(REPLACE('2017年01月01日', '年', '-'), '月', '-'), '日', '')
注: 此replace函数在SQL Server数据库上适用,其他数据库可能要做相应调整。
sql中如何批量替换字段里的字符串?
估计你是没理解replace的意思\x0d\x0a\x0d\x0a譬如你举例的这几个\x0d\x0aupdate表名set字段名=replace(字段名,'aaaa','cccc');\x0d\x0a\x0d\x0a这样以后\x0d\x0aaaaaxxxbbb变成ccccxxxbbb\x0d\x0aaaaamtbbb变成ccccmtbbb\x0d\x0a\x0d\x0a替换的是里边的aaa\x0d\x0a\x0d\x0a你那么写不知道你要改什么,如果你只要改aaabbb的那种可以在后边加where条件\x0d\x0a\x0d\x0aupdate表名set字段名=replace(字段名,'aaaa','cccc')where字段名like'aaabbb'\x0d\x0a\x0d\x0a当然,这个模糊查询是access里的,如果是sqlserver或oracle等,那个是要替换成%的\x0d\x0a\x0d\x0a----补充----\x0d\x0a按你说的意思\x0d\x0aaccess:\x0d\x0aupdate表名set字段名='A'where字段名like'aaabbb'\x0d\x0a\x0d\x0asqlserver或oracle:\x0d\x0aupdate表名set字段名='A'where字段名like'aaa%bbb'
MSSQL Server数据库内容替换方法
在使用iwms系统的过程中,我们会经常遇到数据内容的替换作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL Server数据库的数据存储类型:
SQL Server数据类型:
数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:
update [swf_Upload] set [Dir] = replace([Dir],'200901/14','200901/15')update [swf_Content] set [Description] =replace([Description],'200901/14','200901/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),'200901/14','200901/15')
UPDATE [数据表名] SET [字段名] = REPLACE([字段名],'老字符串','新字符串')
比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:
UPDATE [iwms_news] SET [title] = REPLACE([title],'老字符串','新字符串')
上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:
一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容长度4000的文章。
update [数据表名] set [字段名] = replace(convert(varchar(4000), [字段名]),'老字符串','新字符串')
比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:
update iwms_news set [content] = replace(convert(varchar(4000),[content]),'老字符串','新字符串')
二是SQL Server存储过程
declare @ptr varbinary(16)
declare @artId int
declare @Position int,@len int
set @len = datalength('老字符串')
declare wux_Cursor scroll Cursor
for
select textptr([字段名]),[key字段名] from [数据表名]
for read only
open wux_Cursor
fetch next from wux_Cursor into @ptr,@artId
while @@fetch_status=0
begin
select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artId
while @Position0
begin
set @Position=@Position-1
updatetext [数据表名].[字段名] @ptr @Position @len '新字符串'
select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写
declare @ptr varbinary(16)
declare @artId int
declare @Position int,@len int
set @len = datalength('老字符串')
declare wux_Cursor scroll Cursor
for
select textptr([content]),[articleid] from iwms_news
for read only
open wux_Cursor
fetch next from wux_Cursor into @ptr,@artId
while @@fetch_status=0
begin
select @Position=patindex('%老字符串%',[content]) from iwms_news where [articleid]=@artId
while @Position0
begin
set @Position=@Position-1
updatetext iwms_news.[content] @ptr @Position @len '新字符串'
select @Position=patindex('%老字符串%',[content]) from iwms_news where [articleid]=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
ok了,需要注意的是:存储过程只能在SQL Server查询分析器中执行。
另外,由于iwms数据库结构的问题,有分页的文章内容需要先后对iwms_news和iwms_pages两个表内容进行替换作。
sql语句中如何分割字符串进行替换
方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace
替换
text
ntext
数据类型字段的语句
。update
表名
set
字段名=replace(cast(与前面一样的字段名
as
varchar(8000))
,'原本内容','想要替换成什么')
方法二:
update
[表名]
set
字段名
=replace(与前面一样的字段名,'原本内容','想要替换成什么')
sql去掉特殊符号?
MySQL SELECT REPLACE(REPLACE(数据库字段,"b'",""),"'","")
要在 SQL 中去掉字符串中的特殊符号,可以使用 REPLACE() 函数。
例如,如果要去掉字符串中的 b' 符号,可以使用如下 SQL 语句:
SELECT
REPLACE(列1, 'b''', '') 列1FROM 表A;
其中,REPLACE() 函数接受三个参数:原字符串、要替换的子字符串和新子字符串。在本例中,我们要替换原字符串中的 b' 为空字符串,即删除它。
结果应该类似于下面这样:
列1
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,443ee46421ec7f7dee51fccbf7fd0c34,bx
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,443ee46421ec7f7dee51fccbf7fd0c34,cx
如果需要去掉字符串中多种不同的特殊符号,可以使用多次 REPLACE() 函数,例如:
SELECT
REPLACE(REPLACE(列1, 'b''', ''), 'c''', '') 列1FROM 表A;
希望这些信息能帮助你解决问题。
sql中如何批量替换字段里的字符串?
估计你是没理解replace的意思
譬如你举例的这几个
update 表名 set 字段名=replace(字段名,'aaaa','cccc');
这样以后
aaaaxxxbbb 变成 ccccxxxbbb
aaaamtbbb 变成 ccccmtbbb
替换的是里边的aaa
你那么写不知道你要改什么,如果你只要改aaabbb的那种可以在后边加where条件
update 表名 set 字段名=replace(字段名,'aaaa','cccc') where 字段名 like 'aaabbb'
当然,这个模糊查询是access里的,如果是sqlserver或oracle等,那个是要替换成%的
----补充----
按你说的意思
access:
update 表名 set 字段名='A' where 字段名 like 'aaabbb'
sqlserver或oracle:
update 表名 set 字段名='A' where 字段名 like 'aaa%bbb'
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。