SQL查询结果替换???????
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询结果替换???????相关的知识,希望对你有一定的参考价值。
要执行一个查询,凡是查询结果里面有+号的全部替换为空格或空,要求不改变数据库,请问该怎么写SQL语句?
有办法的,不过要慎用先为表1增加两个字段,一个是begin_name 一个是end_name
然后update这两个字段
替换为第三个字段里的前4位和后4位,用substr函数
再然后拼接一下字符串替换一下
最后把新增的两个字段弄掉
----------------补充-------------
具体步骤
1.alter table 表1 add begin_name varchar2(24) NULL;
alter table 表1 add end_name varchar2(24) NULL;
长度自己定义,足够长就行,以后这里要存放表2的字段3
2.update 表1 set begin_name=substr(字段3,1,4);
update 表1 set end_name=substr(字段3,-4,4);
commit;
3.update 表1 a set a.begin_name=(select b.字段3 from 表1 b where a.字 段1=b.字段1);
update 表1 a set a.end_name=(select b.字段3 from 表1 b where a.字段1=b.字段1);
commit;
4.update 表1 set 字段3=begin_name||\'~\'||end_name;
commit;
5.drop那俩字段,这个不用我写了吧?
还有点问题,如果象你第三条纪录,那你就判断一下字段3的长度就行了,这个改起来又不难
我写的很详细了啊,你只要把表1表2和字段名换成你自己数据库里的不就行了吗 参考技术A select * from 表 where 字段 like '%+%'
--查询某个字段里是否有结果包含'+'的
update 表 set 字段 = replace(字段,'+','') where 字段 like '%+%'
--更新上句查询出来了。若有多个字段,且你不确定'+'出现的字段,可每个字段分别执行这两句。 参考技术B 如果表1没有
1001~1002
这样的数据就好办了,用plsql很好实现.
这样的话可以写个小程序,两条sql把表1,表2数据查询出来,然后根据表2替换表1,然后写回表1即可... 参考技术C 只能一个字段一个字段替换:
select replace(content,'+',' ') from tablename
content是你数据库的字段名 参考技术D select replace(Column,'+','') From table本回答被提问者采纳
SQL查询替换通配符文本? [复制]
【中文标题】SQL查询替换通配符文本? [复制]【英文标题】:SQL queries to replace wildcard text? [duplicate] 【发布时间】:2020-04-13 23:06:55 【问题描述】:所以我有一个小型数据库,我正在玩弄并试图变得更好。我目前有一张表格,里面有员工姓名和备注(只是一个模型),所以结果看起来像这样:
姓名/员工编号/备注
其中包括员工姓名、编号以及有关员工的书面说明。我在笔记中写了一些示例文本,例如“是一个伟大的工人,从不迟到 - 亚当”
SELECT * FROM `employees` WHERE `Note` LIKE '%Adam%'
我可以使用它来显示 Adam 发布的所有笔记,但是假设我想将名称从 Adam 更改为 Brad 而不必重写每个笔记,有没有办法替换该特定文本但保留笔记的其余部分?
谢谢
【问题讨论】:
见MySQL string replace,或者,更一般/复杂的搜索,How to do a regular expression replace in MySQL?。 【参考方案1】:您可以使用以下查询:
update employees set Note = REPLACE(Note, 'Adam', 'Brad');
查看此链接了解更多信息: MySql Reference Manual
【讨论】:
以上是关于SQL查询结果替换???????的主要内容,如果未能解决你的问题,请参考以下文章