5
對於SQL Server數據倉庫,我需要匹配包含大致相同數據的兩個表。合併具有重複數據的表
顯然有比這更給它,所以重新定義任務不:-)
一個選項考慮2個表,A和B
表A:
id | fid | type
-------------------
100 | 1 | cookies
110 | 1 | muffins
120 | 1 | muffins
表B:
id | fid | type
--------------------
a220 | 1 | muffins
b220 | 1 | muffins
合併時(在此申請祕密IT - SQL),它應該變成
A_B:
A_id | B_id | fid | type
---------------------------
100 | NULL | 1 | cookies
110 | a220 | 1 | muffins
120 | b220 | 1 | muffins
使用T-SQL中的任何溶液是優選的,性能是不是一個問題。如果SSIS是一個更簡單的選擇,我可以忍受這一點。
這裏是一個腳本,用於創建測試環境供您玩耍。
/****** Object: Table [dbo].[B] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[B](
[id] [varchar](10) NULL,
[fid] [int] NULL,
[type] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[B] ([id], [fid], [type]) VALUES (N'a220', 1, N'muffins')
INSERT [dbo].[B] ([id], [fid], [type]) VALUES (N'b220', 1, N'muffins')
/****** Object: Table [dbo].[A] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[A](
[id] [varchar](10) NULL,
[fid] [int] NULL,
[type] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[A] ([id], [fid], [type]) VALUES (N'100', 1, N'cookies')
INSERT [dbo].[A] ([id], [fid], [type]) VALUES (N'110', 1, N'muffins')
INSERT [dbo].[A] ([id], [fid], [type]) VALUES (N'120', 1, N'muffins')
爲什麼a.110比賽A220? – podiluska
您是否加入'type'字段中的表格? – Gidil