在线等。。。。SQL中如何将一个表中的某一列的数据替换到另一个表中的某一列里。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线等。。。。SQL中如何将一个表中的某一列的数据替换到另一个表中的某一列里。相关的知识,希望对你有一定的参考价值。

两个表。
表A有以下三列:ID,land,num
表B有以下三列:ID,MC,QH。
两个表ID是相同的。
现在想把表A中的num列数据替换到表B中的QH列,但是对于QH列中已经存在的数据不替换。
这个语句该怎么写?
在线等。。。。

1、一个Student的数据表,这里我们呢需要对数据表中的StudentName数据表中的单个的数据进行修改。

2、我们首先打开我们的数据库查询语句,输入查询语句先查询一下数据表中的数据内容。

3、输入查询语句,:Select * from Student,输入完毕之后选择全部内容,然后选择执行按钮,执行SQL语句。

4、执行完毕之后,在我们的Student表中的第四行数据(StudentName中的“崔”)这里我们需要把它修改为“亮亮”。

5、 在你的数据表上,用鼠标右击选择里面的“编辑前200行”。

6、     这里我们直接选择里面的内容把它修改成“亮亮”。

7、修改完毕之后这里我们选择右击内容,然后选择里面的执行。

8、  执行完毕之后,同样的方式,我们用数据查询语句查询数据,这里我们可以在如下图中看到已经成功的修改了数据内容。

参考技术A 方法1:试试这样的语句能不能行:
update table_A set table_A.num=(select table_B.QH where table_B.ID=table_A.ID);
方法2.创建一个视图:
第一、 create view view_temp (select A.num as num,B.qh as qh) from A,B where A.ID=B.ID);
第二、更新view:
update view_temp set num=qh本回答被提问者采纳
参考技术B update b set b.QH=a.num from 表A a,表B b where a.ID=b.ID and b.QH is null
你没说数据库类型,如果是sqlserver的话,我这个语句就能用
参考技术C sql2000:
update B set b.QH=a.num from a,b where a.ID=b.ID and b.QH is null

oralce:
update B set b.qh=(select num from a where b.ID=a.ID) where b.qh is null
参考技术D update B set b.QH=(select a.num from a where a.id=b.id) where b.QH is null;
就这么简单.

如何将sql server 数据库表中的某一列的某一字符替换成需要的字符

由于服务器ip地址更改,使该服务器的论坛(sql server数据库)中上传的图片不能正确显示,图片显示还在指向原来ip的地址,现在想知道如何能将数据库中的ip地址进行替换??例如:数据库名bbs,表名:forum,列名:content
该列的内容:
<IMG src="http://10.63.13.200/bbs/images/Emotions/70.gif"><IMG src="http://10.63.13.200/bbs/images/Emotions/70.gif"><IMG src="http://10.63.13.200/bbs/images/Emotions/34.gif">
想将10.63.13.200替换为10.63.14.200
我应该怎么办??
由于论坛上上传的大多数都是图片,数据库比较大,我本想用导出excel文件替换然后再导入,但是导出后出现excel文件错误,无法导出。所以只能希望用sql指令进行修改了,希望等到帮助,谢谢了:)

用:
replace(content, '10.63.13.200', '10.63.14.200')

出现 [microsoft][odbc sql server driver][sql server]第一行:‘content’附件有语法错误

用:
use bbs

select replace(content,'10.63.13.200','10.63.14.200') from forum

出现 [microsoft][odbc sql server driver][sql server]函数 replace的参数1的数据类型text无效

数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。

所有的默认值都丢失了。主要是数字类型和日期类型。

所有now(),time(),date()要改成getdate()。

所有datediff('d', time1, time2)要改成datediff(day, time1, time2)

有可能一些true/false类型不能使用,要变为1/0。

备注类型要通过cast(column as varchar)来使用。

CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。

isnull(rowname)要改成rowname = null

ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。

对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".

日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
参考技术A 这个问题我也碰到过,不过我当初是为了处理搜索时在sql裏自动把新闻搜索的关键字替换成红色的代码,也就是加个<font color=red></font>在关键字上,给果发现text类型不能替换,所以后来就先把其强制转换成varchar再替换的,不过如果内容太多为丢失一部分的.
(REPLACE(CONVERT(Varchar(80),content),@keyword,('<font color=red>'+@keyword+'</font>')) + '...') AS content
同理你也可以这样做
select replace(CONVERT(Varchar(80),content),'10.63.13.200','10.63.14.200') as content from forum
参考技术B 由于content字段是text类型的,replace函数不支持第一个参数是text类型,所以直接那么用是会出错的。你可以尝试用如下语句
select replace(cast(content as varchar(8000)),'10.63.13.200','10.63.14.200') from forum

同样,更新语句就是
update forum
set content=replace(cast(content as varchar(8000)),'10.63.13.200','10.63.14.200')

如果content字段的总长度没有超过8000字节,语句是没有问题的,如果超过8000字节,更新就比较麻烦了,楼主先看看上述语句是否可以正常执行吧。
参考技术C 用replace
设定 字段名 volumnName
需要修改的字符 A 替换成 BCD

update 表名 set volumnName=replace(volumnName,'A','BCD')
参考技术D update forum set content=replace(content,'10.63.13.200','10.63.14.200')本回答被提问者采纳

以上是关于在线等。。。。SQL中如何将一个表中的某一列的数据替换到另一个表中的某一列里。的主要内容,如果未能解决你的问题,请参考以下文章

sql将一个表中的某一列数据更新到另一个表中

SQL语句 将表中的某一列的数据赋值成从0开始自增1

excel中判断一个表中的某一列的数据在另一个表中的某一列中是不是存在

SQL实用技巧:如何将表中某一列的部分数据合并到一行中

sql,表与表之间列的包含查询

在mysql中为某一行的某几列插入数据怎么写