求助:对比取值SQL语句
时间:2011-11-28
来源:互联网
update [a].[dbo].[a] set 区号='' from [a].[dbo].[a] m, [a].[dbo].[区号] n
where substring(m.区号,0,3) not like substring(n.区号,0,3)
update [a].[dbo].[a] set 区号='' from [a].[dbo].[a] m, [B].[dbo].[区号] n
where m.区号 not like n.区号
目的:因为A数据库中的区号字段有一些区号不规范,有些甚至不是区号,但是数字,如026,我将B库创建一个表,表里的区号字段是全国的区号,我想通过二个数据库的对比,将不是区号的替换为空白,但以上二句都不行,执行后A库的区号全部被替换为空白,请高手帮忙,谢谢。
where substring(m.区号,0,3) not like substring(n.区号,0,3)
update [a].[dbo].[a] set 区号='' from [a].[dbo].[a] m, [B].[dbo].[区号] n
where m.区号 not like n.区号
目的:因为A数据库中的区号字段有一些区号不规范,有些甚至不是区号,但是数字,如026,我将B库创建一个表,表里的区号字段是全国的区号,我想通过二个数据库的对比,将不是区号的替换为空白,但以上二句都不行,执行后A库的区号全部被替换为空白,请高手帮忙,谢谢。
作者: qswx168 发布时间: 2011-11-28
SQL code
UPDATE a SET 区号=b.ID from [a].[dbo].[a] AS a INNER JOIN [a].[dbo].[区号] AS b ON substring(m.区号,0,3)=substring(n.区号,0,3) 應該是這樣先把存在的替換為區號的ID,一段段更更 加上條件a表的區號不是區號ID的繼續更新,最后再把不能更新的更新為''
作者: roy_88 发布时间: 2011-11-28
SQL code
use A update t1 set 区号='' from a t1 where not exists(select 1 from B.dbo.a where 区号=t1.区号)
作者: qianjin036a 发布时间: 2011-11-28
引用 1 楼 roy_88 的回复:
SQL code
UPDATE a
SET 区号=b.ID
from [a].[dbo].[a] AS a
INNER JOIN [a].[dbo].[区号] AS b ON substring(m.区号,0,3)=substring(n.区号,0,3)
應該是這樣先把存在的替換為區號的ID,一段段更更 加上條件a表的區號不是區號ID的繼續更新,最后再把不能更新的更新為''
SQL code
UPDATE a
SET 区号=b.ID
from [a].[dbo].[a] AS a
INNER JOIN [a].[dbo].[区号] AS b ON substring(m.区号,0,3)=substring(n.区号,0,3)
應該是這樣先把存在的替換為區號的ID,一段段更更 加上條件a表的區號不是區號ID的繼續更新,最后再把不能更新的更新為''
消息 4104,级别 16,状态 1,第 2 行
无法绑定由多个部分组成的标识符 "m.区号"。
消息 4104,级别 16,状态 1,第 2 行
无法绑定由多个部分组成的标识符 "n.区号"。
作者: qswx168 发布时间: 2011-11-28
SQL code
update [a].[dbo].[a] set 区号='' from [a].[dbo].[a] m left join [a].[dbo].[区号] n on substring(m.区号,0,3) like substring(n.区号,0,3) where n.区号 is null
作者: ssp2009 发布时间: 2011-11-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28