[英]Merge multiple tables into one table SQL Server
我想將 3 個表合並為一個,以獲取具有以下條件的完整數據
這是我從表 2 合並到測試的示例代碼。
MERGE INTO [dbo].[test] a
USING [dbo].[test2] b ON a.col1 = b.col1
WHEN MATCHED THEN
UPDATE
SET col1 = b.col1,
col2 = b.col2,
col3 = b.col3,
col4 = b.col4
WHERE col1 = '' OR col2 = '' OR col3 = '' OR col4 = '';
它得到錯誤:
關鍵字“where”附近的語法不正確。
請嘗試使用 COALESCE 函數而不是使用 where 條件。 如果遇到 NULL,則 COALESCE 函數采用下一個值。
Merge into [dbo].[test] a
using [dbo].[test2] b
on a.col1 = b.col1
when matched then
update
set col2 = COALESCE(a.col2, b.col2),
col3 = COALESCE(a.col3, b.col3),
col4 = COALESCE(a.col4, b.col4);
因此,在修改后的代碼中,如果表 [dbo].[test] col2 為 Null,則它從 [dbo].[test2] 中獲取值。 由於您將使用 COALESCE,您將能夠合並任意數量的值。
你能顯示表格結構嗎?
您可以按照此鏈接使用UNION ALL
運算符。
https://www.techonthenet.com/sql_server/union.php
OR 混合INNER JOIN
與UPDATE
語句結合WHERE
子句的條件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.