读书人

对比取值SQL语句

发布时间: 2012-01-12 22:11:58 作者: rapoo

求助:对比取值SQL语句
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库的区号全部被替换为空白,请高手帮忙,谢谢。

[解决办法]

探讨

引用:

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 区号='' from a  where not exists(select 1 from B.dbo.a where 区号=t1.区号)
[解决办法]
探讨

SQL code

use A
update t1 set 区号='' from a t1 where not exists(select 1 from B.dbo.a where 区号=t1.区号)

读书人网 >SQL Server

热点推荐