我有兩個表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中包含RowNumb因此表B的值不是在表A的值的末尾顯示,而是在表A的第一行之後顯示。但是我需要表A的末尾的值。請幫助
我有兩個表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中包含RowNumb因此表B的值不是在表A的值的末尾顯示,而是在表A的第一行之後顯示。但是我需要表A的末尾的值。請幫助
給出一個額外的列值只是爲了排序。
查詢
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];
沒有使用Order by有沒有辦法做到這一點? – user2546461
如果按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
TRY以下列方式插入並給表A的最大值,這樣我t之後將生成數字:
INSERT INTO TableA
SELECT (row_number() OVER (ORDER BY rownumber)+2) AS n,
id,
name,
address
FROM TableB
我無法將該列作爲標識。我的目標是插入具有行號值的值但我不能使用order By子句。行號值可以更新或忽略嗎? – user2546461
插入時嘗試更新的一個,如果你覺得合適的話。 – Susang
我試過以下查詢。 INSERT INTO表A SELECT ROW_NUMBER()OVER(ORDER BY ROWNUMBER)+2 N, ID, 名稱,地址 從 表B 它給我以下錯誤:\t列名或提供值的數目不匹配表定義。 – user2546461
爲什麼要在行中保留RowNumber?你可以使用'ROW_NUMBER'函數 –
表代表*無序*集。沒有「表A的結尾」這樣的事情。 –
@GordonLinoff有人會說「表A的結尾」發生在表被刪除時:-) –