日期:2014-05-18  浏览次数:20623 次

插入列值的问题
表TAB有X、Y两个字段,字段X已有记录,字段Y为空。现在想把一列记录插入Y字段中,可是插入的时候却不是从第一行开始的,这怎么办呀,请大虾们帮忙,先谢谢!!

------解决方案--------------------
SQL code

declare @表TAB table (X int,Y int)
insert into @表TAB
select 5,null union all
select 6,null union all
select 8,null union all
select 9,null union all
select 23,null union all
select 15,null

/*
有一列数
2
7
9
5
12
32
*/
SELECT  X,c AS Y FROM    
(SELECT ROW_NUMBER() OVER ( ORDER BY GETDATE() ) AS id,* FROM  @表TAB) a
LEFT JOIN 
(SELECT ROW_NUMBER() OVER ( ORDER BY GETDATE() ) AS id,* FROM 
(SELECT 2 AS c UNION ALL SELECT 7 UNION ALL SELECT    9
UNION ALL SELECT 5 UNION ALL SELECT 12 UNION ALL SELECT 32) d
) b ON a.id = b.id 
/*
X           Y
----------- -----------
5           2
6           7
8           9
9           5
23          12
15          32
*/

------解决方案--------------------
给表加个自增的标识列,新增数据的表也加一个标识列,然后两表按照这个标识列去更新。


update a
set a.y = b.y
from tb1 a join tb2 b on a.id = b.id
------解决方案--------------------
探讨
表TAB有X、Y两个字段,字段X已有记录,字段Y为空。现在想把一列记录插入Y字段中,可是插入的时候却不是从第一行开始的,这怎么办呀,请大虾们帮忙,先谢谢!!