精华内容
下载资源
问答
  • sql server update 根据A表修改B表

    千次阅读 2019-02-28 12:31:26
    update test..new set new='new1' where id=1 update test..new set new='new2' where id=2 update test..new set new='new3' where id=3 update test..new set new='new4' ...以上用于恢复数据 select * from te...

    update test..new set new='new1' where id=1
    update test..new set new='new2' where id=2
    update test..new set new='new3' where id=3
    update test..new set new='new4' where id=4

    以上用于恢复表数据

    select * from test..new
    select * from test..old


    update test..new 
    set new=(select old from test..old where id=1)
    where id=1

    update test..new 
    set new=(select old from test..old where id=1)

    update test..new  
    set new=test..old.old 
    from test..new  inner join test..old on test..new.id=test..old.id

    --------------------以下是多列update

    update test..new set new='new1' where id=1
    update test..new set new='new2' where id=2
    update test..new set new='test' where id=3
    update test..new set new='new4' where id=4

    update test..new set idd=null where id=1
    update test..new set idd=null where id=2
    update test..new set idd='testidd' where id=3
    update test..new set idd=null where id=4

    select * from test..new
    select * from test..old

    update test..new  
    set new=test..old.old,
          idd=test..old.idd2
    from test..new  inner join test..old on test..new.id=test..old.id

    update test..new  
    set new=t1.new,
        idd=t1.idd
    from test..new  inner join (select * from test..new ) t1  on test..new.id =t1.id-2
    where  test..new.id=1

     

     

    展开全文
  • 有两个lms.sap_materialmaster和plant.sap_materialmaster,需要根据MATNR=MATNR AND WERKS=WERKS AND DATAUPDATE=DATAUPDATE这个三个栏位不一样的修改数据(insert的我已经处理了) UPDATE lms.sap_...
  • 根据B表数据批量修改A表中数据

    千次阅读 2018-04-03 14:56:22
    需求:两张table_a和table_b都有vin字段,需要将table_b中的model数值赋值给table_a中相同vin对应的model字段update table_a A set A.model = (SELECT model FROM table_b B where A.vin=B.vin) ...
    需求:两张表table_a和table_b都有vin字段,需要将table_b中的model数值赋值给table_a中相同vin对应的model字段
    update table_a A set A.model = (SELECT model FROM table_b B  where A.vin=B.vin) 
    展开全文
  • 以下sql是a,b两张表通过关联条件id修改a表值,如果b表有重复数据记录,选第一条更新,红色条件为附加限制条件,具体视情况而定; UPDATE a SETname = b.fname,pwd = b.lnameFROM bWHERE a.id = b.id AND a.id in (2...

    以下sql是a,b两张表通过关联条件id修改a表值,如果b表有重复数据记录,选第一条更新,红色条件为附加限制条件,具体视情况而定;

    UPDATE a SET
    name = b.fname,
    pwd = b.lname
    FROM b
    WHERE a.id = b.id
    AND a.id in (2,3)   

    以下sql为查询单表中重复记录;

    select * from b t1 where t1.fname in  (select t2.fname from b t2 group by t2.fname having count(*) > 1)

    以下为转载SQL语句,删除掉重复项只保留一条,提示(如果表没有主键,导致ID重复,可利用rownum来做判断保留min(rownum)),下边也有函数处理方法

    在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢
    1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 
    select * from people 
    where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 

    2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 
    delete from people 
    where   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1) 
    and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>1) 

    3、查找表中多余的重复记录(多个字段) 
    select * from vitae a 
    where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 

    4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 
    delete from vitae a 
    where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 

    5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 
    select * from vitae a 
    where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)   

    6.消除一个字段的左边的第一位:

    update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'

    7.消除一个字段的右边的第一位:

    update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'

    8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 
    update vitae set ispass=-1
    where peopleId in (select peopleId from vitae group by peopleId

    postgresql 删除ID重复数据

    原来表设计没有主键导致SQL重复执行时会产生多条一模一样的主键,现在需要对原来的表建立主键,需要对ID重复的数据进行删除,只保留一条虽然数据完全一致,但好在pgsql数据库提供了ctid的隐藏列,根据此列可以把只保留最小ctid的相同数据行。于是写了以下存储过程来处理。方便多了。再也不错这种问题了。

    CREATE OR REPLACE FUNCTION delete_repeat(tablename varchar)
    RETURNS bigint AS
    $BODY$
    DECLARE
    rec RECORD;
    sql varchar;
    BEGIN
    RAISE INFO '处理表名:%', tablename;
    IF NOT exists(select * from pg_class where relname = tablename) then
    RAISE INFO '处理表不存在:%', tablename;
    RETURN -1;
    END IF;

    FOR rec in EXECUTE('select id from '||tablename||' group by id having count(id) > 1') LOOP
    RAISE INFO 'id:%', rec.id;
    sql := 'delete from ' || tablename || ' where id = ''' || rec.id|| ''' and
    ctid <> (select min(ctid) from ' || tablename || ' where id = ''' || rec.id|| ''')';
    execute sql;
    RAISE INFO 'sql:%', sql;
    END LOOP;
    RETURN 1;
    END;
    $BODY$
    LANGUAGE plpgsql VOLATILE
    COST 100;

    运行select delete_repeat('tablename'); 

     

    转载于:https://www.cnblogs.com/mingxiaoyue/p/7000419.html

    展开全文
  • b_string1 = t4.a_string1, b_string2 = t4.a_string2, b_string3 = t4.a_string3, b_string4 = t4.a_string4, b_string5 = t4.a_string5, update_by = current_user, update_date = getdate() from B t3 inner join...
  • 根据表批量修改

    2018-05-13 09:55:37
    根据B表修改A表中有误的字段值 1. 找出有误的数据 2. 修改有误的数据 实例 DECLARE @Term INT --当前学期ID SELECT @Term=ID FROM Semester WHERE TermState=1 -----------------------找出学生类别不同的...

    根据表批量修改

    根据B表修改A表中有误的字段值
    1. 找出有误的数据
    2. 修改有误的数据

    实例

    DECLARE @Term INT  --当前学期ID
    SELECT @Term=ID FROM Semester WHERE TermState=1
    
    -----------------------找出学生类别不同的数据
    SELECT StudentsCourseRecord.StudentID,StudentsCourseRecord.SemesterID,
    StuAndCategory.TermID,StudentsCourseRecord.StuCategory,StuAndCategory.StuCategoryID     
    FROM StudentsCourseRecord RIGHT OUTER JOIN StuAndCategory ON
    StudentsCourseRecord.StudentID=StuAndCategory.InformationID AND
    StudentsCourseRecord.SemesterID=StuAndCategory.TermID
    WHERE StudentsCourseRecord.StuCategory<>StuAndCategory.StuCategoryID OR StudentsCourseRecord.StuCategory IS NULL
    AND StuAndCategory.TermID=@Term
    
    -----------------------更新StudentsCourseRecord.StuCategory为正确的数据
    UPDATE StudentsCourseRecord SET StudentsCourseRecord.StuCategory=StuAndCategory.StuCategoryID
    FROM StudentsCourseRecord RIGHT OUTER JOIN StuAndCategory ON
    StudentsCourseRecord.StudentID=StuAndCategory.InformationID AND
    StudentsCourseRecord.SemesterID=StuAndCategory.TermID
    WHERE StudentsCourseRecord.StuCategory<>StuAndCategory.StuCategoryID OR StudentsCourseRecord.StuCategory IS NULL
          AND StuAndCategory.TermID=@Term
    
    展开全文
  • update table1 a1 inner join (select a.id from table1 a inner join table2 b on b.id=a.id where b.name='nameValue')tmp on a1.id=tmp.idset a1.item='value'...
  • 主要场景应用于A表的字段cust_id是B表里面的主键ID,根据已经A表中存有的cust_code值做关联通步B表的cust_id存储到A表中cust_id中,使用主键索引查询提高查询效率 UPDATE crm_cust_message_detail d SET d.cust_id...
  • 1、根据表tb_b 设置tb_a 的date 字段 取值tb_b的pay_time tb_b对应tb_a为一对多的关系 这里取值多条中的最大值 UPDATE tb_a a INNER JOIN tb_b b ON b.id=a.order_id SET a.date = (SELECT MAX(pay_time) FROM tb_...
  • sql根据一个表的id修改另一个表的内容,假如有两个表,A,B a表设置了b表的外键,想 根据b表的id,update A表的数据,sql语句怎么写,求大神帮帮忙,另外 按照这样的,删除功能怎么写
  • 本人用于历史恢复数据, 根据表B的值,恢复表A的数据   update TableA t set ( t.field1, t.field2) =  (select t1.field1, t1.field1 from TableB t1  where t1.id = t.id  ) --(取...
  • mysql根据查询条件去修改另一张

    千次阅读 2016-08-05 17:16:20
    需求2:查询条件是表A 修改的是表B表A中的值复制给表B (多) 在mysql中是不允许先select 后update的,所以这里给出的方案是创建中间 具体看如下代码: update 表B set status = 0 where fid = ( select a....
  • mysql根据另一张内容修改字段

    千次阅读 2016-11-17 15:14:18
    需求: 有如下两张: 表A id username usercode 1 tom 001 2 jerry 002 ...表B ...现在需要将表B中的user字段值根据表A中的username换成usercode. 实现: UPD
  • 背景 从网上搞了一份行政区域的数据只有Name,Code,PCD,但自己设计的如下多了PName,需要把父级...update SysArea set PName=s.bname from (select a.Id as aid,b.Name as bname from SysArea a inner join ...
  • 表A字段: 类型、一月、二月。。。。十二月 交通费、100、200。。。。...电话费、100、200....表B字段: 月份、类型、金额 1 、交通费、500 2 、电话费、500 最终数据库更改表A字段相同月份下类型相同的金额
  • update a set a.ty2=b.ty1 from t2 a,t1 b where a.n2=b.n1
  • 数据库大改造

    2018-01-30 16:43:02
    根据表A与表B关联字段,将B中字段更新到表A中去  A包含 号码,其他字段,  包含 号码,ID ...3. 校验数据, 删除A表, 改变A1表的名称为A表 create table A1 as select A.usr_id as usr_
  • 异库的情况下,A库a表 与 B库b表 中有相对应的ID字段,需要将a表某个字段的值添加到b表对应数据的某个字段下 上sql UPDATE A.a a INNER JOIN (SELECT b.XX_ID,b.XX_NUMBER FROM B.b b) bb ON a.XX_ID = bb.XX_ID SET...
  • 根据查询出的值来修改其他的值。 UPDATE a set a.ProcessStatus = 'C', a.ProcessTime = getdate(), a.ExecDate = b.ExecDate FROM transport AS a ,vi_Surgery AS b WHERE a.IdHospSurgery = b.IdHospSurgery AND...
  • 根据数据库设计该字段来源于另一个收款计划细。而唯一能够关联到该字段的是用细里面的单据号。于是问题出现了。汇款主和汇款细是一对多的数据。而汇款细中的数据如单据号MSL2010100024的对应收款计划有...
  • 表AC,现在要根据表C给表A新增数据, 如果C三条记录,那么表A的第一条记录就新增no为B、C的两条; 第二条记录新增no为B、C的两条; 第三条记录新增no为A、C的两条,后面的以此类推... 我想的大概的框架应该是...
  • 联合修改

    2018-11-12 12:53:00
    需要根据另一个的关联数据修改当前 update a set a.id=123 where exists (select 1 from b where a.id=b.id and b.status=1) 转载于:https://www.cnblogs.com/tian159/p/9945827.html
  • MySQL 中 You can't specify target table '表名' for update in FROM clause 解决办法 -- 错误的写法 DELETE FROM usr WHERE id IN ( SELECT id FROM usr ... b.id IN ( SELECT a.id FROM ( SELECT id FRO..
  • update shuangye_sogz set fdept= c.odept --select * from shuangye_sogz a, ... (select op.fdept odept,b.* from shuangye_sogz b left join op on op.opname=b.sxopname )c  where isnull(a.fsaved,'') and
  • 假如:A表收入表、B表为商品售出记录表,每卖一件商品,B创建一条出售记录,A根据B的主键创建一条收入信息, A表为的外键是B表的主键,售出一件商品,正确操作应该是:创建B表的一条数据,表示有商品售出,然后A表...
  • 根据B表、C表内容修改A表数据 A表中stuid为学生号,testid为考试号,1,2,3,4,5为考试小题号;B表中1,2,3,4,5内为学生答案, C表中的stid为小题号,daan为标准答案,fs为每小题得分。 请教:如何用update set ...
  • 每次用户会提前选好待填充地区A 参照地区B,具体操作Table1,需要: 1. 在Table1中删除地区A的数据 2. 查到Table1中地区B的数据 3. 将2中查到的数据,作为地区A新增至Table1中 因为不同的列不一样,所以单纯写...
  • UPDATE data_base_a A, data_base_b B ...数据库 表AB,将B中的columnB 字段赋值给 A 中的columnA 字段,where 条件是A中的某个字段等于B中的某个字段并且是B里面的某字段内容限制是approveUserName ...
  • 根据之前的一些想法,如果有A,B 两个数据库, 如果把A 用户通过界面产生的更新或者插入修改,操作的数据同步更新到B 库中,如果允许延时2分钟以内 想法一: 通过创建触发器 把变更的数据和对应的名称统一存储到...
  • 业务场景:财务需要增加一张A表,将B表与C表的某些数据整合起来,... 根据B表数据量的大小选择不同的处理方式(不行还可以分割么,多次处理) 1万条数据以下(不包含varchar>2048的):使用单条insert语句,其后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 859
精华内容 343
关键字:

根据a表改b表