我有两张桌子A和B. 这两个表都有行号字段
表A
RowNumber Id Name Address 1 1 ABC India 2 2 XYZ Australia
表B
RowNumber Id Name Address 1 3 ABC India
我需要在表A的末尾插入表B的值。由于表A持有RowNumber字段,因此表B的值不在表A的值的末尾,它显示在第一行之后表A.但我需要表A末尾的值。请帮助
答案 0 :(得分:0)
为了排序而给出一个额外的列值。
<强>查询强>
select t.[RowNUmber], t.[Id], [Name], [Address] from(
select [RowNumber], [Id], [Name], [Address], 0 as [sortby]
from [TableA]
union all
select [RowNumber], [Id], [Name], [Address], 1 as [sortby]
from [TableB]
)t
order by t.[sortby], t.[RowNumber];
答案 1 :(得分:0)
如果您按ID排序,那么您将在选择中获得预期结果,但是对于插入,您必须将RowNumber
列设为IDENTITY
,然后它将插入带有`RowNumber 3,4的下一条记录,5 ....等等
SELECT RowNumber, Id, Name, Address from TableA
UNION ALL
SELECT RowNumber, Id, Name, Address from TableB
ORDER BY ID
尝试以下列方式插入并提供TableA的最大值,以便在此之后生成数字:
INSERT INTO TableA
SELECT (row_number() OVER (ORDER BY rownumber)+2) AS n,
id,
name,
address
FROM TableB