sql语句问题 通过联立两个表更新其中一个表的字段

============问题描述============

有两个表a和b,a表中的字段有mobilehead(号码前7位),provincename,b表中有mobile(正常号码),provincename,需求是通过联立两个表,更新b表中provincename为空的数据。

============解决方案1============

可以这样做

UPDATE    b

SET            b.PN = a.PN

FROM         a   WHERE     b.PN = ‘‘  and  a.MH = LEFT (b.M, 7)
时间: 2024-10-26 21:00:44

sql语句问题 通过联立两个表更新其中一个表的字段的相关文章

MySQL之SQL语句实现将三个查询结果集拼接成一个表

遇到的问题: 现在利用SQL语句查询得到三个结果集,每一个结果集是两列,具体为排名序号与对应的名字,如下表一.但是现在需要将这三个结果集拼接成为一个表,并且只有一个排名序号. 排名 姓名 1 张三 2 李四 利用SQL语句实现: SELECT rownum, MAX(post1) AS post1,MAX(post2) AS post2,MAX(post3) AS post3FROM(SELECT @rownum1 := @rownum1 + 1 AS rownum, firstname AS

sql 根据一个表更新 另一个表的例子及可能遇到的问题

例子: update a set a.name=b.name1 from a,b where a.id=b.id 例子延伸:更新的时候会把字符串 转为科学计数法  怎么办? 答:用 cast 转换一下 ,或者双cast update LoaneeExpand  set LoaneeExpand.phone=cast(cast(tt.PHONE as decimal(18,0))  as  nvarchar(50))  from LoaneeExpand ,tt  where  LoaneeExp

利用"SQL"语句自动生成序号的两种方式

1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[name] from sysobjects ◆运行的结果: rowid   name 1           all_columns 2           all_objects 3           all_parameters 4           all_sql_modules 5          

SQL两表之间:根据一个表的字段更新另一个表的字段

1. 写法轻松,更新效率高: update table1 set field1=table2.field1, field2=table2.field2 from table2 where table1.id=table2.id 2. 常规方式,种写法相当于一个 Left join, 以外面的where为更新条数,如果不加where就是所有记录 update table1 set field1=(select top 1 field1 from table2 where table2.id=tab

mysql 两个关联表如何更新其中一个表的数据

今天遇到一个客户的数据更新问题,两个相关联的表,一个主表用于保存单据主要信息,一个副表用于保存单据的明细信息:现在要把主表的其中一个字段的数据更新到副表的一个字段中保存. 假设: A表是主表,有单号order_id.开单人operator.开单日期oper_date.备注memo等: B表是副表,有单号order_id.序号id.商品编码code.商品名称name.备注memo等. A表的备注是有数据的,B表的备注没有数据,现在要把A表的数据更新到B表,并且B表有数据的不能更新了.A表与B表是以

sql server数据库的表中修改一个表的字段的数据类型后,不能保存

一个表中的一个字段 student(sno, sname, age) sname 类型 nchar(10) 修改成int 保存时报错. 这个是SQL SERVER自身默认设置的问题,它默认为不能修改类型. 只需要在"tool->option->Designer ->Table and Database designers 中 去掉prvent saving changes that require table re-created."就可以了, 欧克了,在保存刷新.

使用SQL语句将数据库中的两个表合并成一张表

select * into 新表名 from (select * from T1 union all select * from T2)  这个语句可以实现将合并的数据追加到一个新表中. 不合并重复数据 select * from T1 union all select * from T2  合并重复数据 select * from T1 union select * from T2      两个表,表1 表2 如果要将 表1的数据并入表2用以下语句即可 insert into 表2(字段1,

一个表的两个列连接另外一个表的一个列SQL语句怎么写

f619424517 | 浏览 2207 次 推荐于2016-09-09 11:38:18 最佳答案 select a.flightid,a.flightname,b.cityname,c.cityname,a.price,a.cabinid,a.timefrom 表1 a,表2 b,表2 cwhere a.origin=b.cityidand a.finish=c.cityid 第一个表叫表1,第二个表叫表2,表2用了两次,你只需要替换表1和表2跟你实际的名字一致就行

用SQL语句删除除了id不同,其他都相同的学生表信息

delete from <table_name> wehere id not in (select max(id) from <table_name> group by <除id外的其他字段> 将表中的数据按除ID之外的所有列进行分组   之后每个组的数据就是除了ID都相同的数据了   这样每个组只需保留一条记录即可  这是使用max(id)或者min(id)都可以 总之只要从每组取出一个id即可  然后将整个表中的记录id不在所选择出的id之列的全部删除即可