我有一张有顾客身份证的桌子。我需要将它们与从文本文件加载的响应ids相关联。我正在将外部文件批量加载到一个临时表中,但我不知道如何将它们与客户ids关联起来。
我从这两张桌子开始:
受体
+------+------------+------------+
| id | CustomerId | ResponseId |
+------+------------+------------+
| 1 | 1001 | NULL |
| 19 | 2367 | NULL |
| 47 | 964 | NULL |
| 105 | 1811 | NULL |
+------+------------+------------+#Response
+--------+
| id |
+--------+
| ABCDEF |
| GHIJKL |
| MNOPQR |
| STUVWX |
+--------+我想得到以下内容:
受体
+------+------------+------------+
| id | CustomerId | ResponseId |
+------+------------+------------+
| 1 | 1001 | ABCDEF |
| 19 | 2367 | STUVWX |
| 47 | 964 | MNOPQR |
| 105 | 1811 | GHIJKL |
+------+------------+------------+CustomerId和ResponseId之间的匹配顺序并不重要(我向它们展示了#Responses表的不同排序顺序),只要来自#Responses的每个id都与一个CustomerId相关联。
保证#Responses表至少有与Recipient表一样多的行。
如果这很重要,我使用的是Server 2005
发布于 2013-06-28 09:22:29
在本例中,您可以在两个位置使用row_number()并执行连接
;WITH Cust AS
(
SELECT row_number() over(order by (select 1)) rn,* FROM Customer
),Resp AS
(
SELECT row_number() over(order by (select 1)) rn,* FROM #Responses
)
SELECT C.id,c.CustomerID,C.ResponseId
FROM Cust C
JOIN Resp R
ON C.rn = R.rnhttps://stackoverflow.com/questions/17361031
复制相似问题