首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

同一个表的行数据 UPDATE,该如何处理

2012-03-20 
同一个表的行数据 UPDATE示例:ID单别单号金额赋值金额赋值单号检索条件0111502-20222100if 单别LEFT(检索

同一个表的行数据 UPDATE
示例:
  ID 单别 单号 金额 赋值金额 赋值单号 检索条件
  01 1 1 50 2-2
  02 2 2 100  

  if 单别=LEFT(检索条件,1) and 单号=RIGHT(检索条件,2)
 BEGIN UPDATE 赋值金额= 金额,赋值单号=单别+'-'+单号
  
 最后 result:
  ID 单别 单号 金额 赋值金额 赋值单号 检索条件
  01 1 1 50 2-2
  02 2 2 100 50 1-1

  咋用UPDATE 实现这样的效果呢!
  谢谢!

 

[解决办法]
/*
示例:
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50 2-2
02 2 2 100

if 单别=LEFT(检索条件,1) and 单号=RIGHT(检索条件,2)
 BEGIN UPDATE 赋值金额= 金额,赋值单号=单别+'-'+单号
  
 最后 result:
ID 单别 单号 金额 赋值金额 赋值单号 检索条件
01 1 1 50 2-2
02 2 2 100 50 1-1

咋用UPDATE 实现这样的效果呢!
*/

if
OBJECT_ID('tbl')is not null
drop table tbl
go
create table tbl(
ID varchar(4),
单别 varchar(4),
单号 varchar(4),
金额 numeric(6,2),
赋值金额 numeric(6,2),
赋值单号 varchar(10),
检索条件 varchar(10)
)
go
insert tbl (ID,单别,单号,金额)
select '01','1','1',50
union all
select '02','2','2',100

update tbl
set 赋值金额=a.金额,赋值单号=a.单别+'-'+a.单号
from tbl a where a.ID=ID
/*
ID单别单号金额赋值金额赋值单号检索条件
011150.0050.001-1NULL
0222100.00100.002-2NULL
*/
--楼主的条件不怎么明白,特别是检索条件是什么
[解决办法]

SQL code
create table tb(ID varchar(2),单别 int,单号 int,金额 int,赋值金额 varchar(3),赋值单号 varchar(4),检索条件 varchar(4))insert into tbselect '01',1,1,50,null,null,'2-2' union allselect '02',2,2,100,null,null,nullupdate a set 赋值金额=b.金额,赋值单号=ltrim(b.单别)+'-'+ltrim(b.单号)from tb a left join tb b on left(b.检索条件,1)=a.单别 and right(b.检索条件,1)=a.单号select * from tb/*ID   单别          单号          金额          赋值金额 赋值单号 检索条件---- ----------- ----------- ----------- ---- ---- ----01   1           1           50          NULL NULL 2-202   2           2           100         50   1-1  NULL*/ 

热点排行