我的问题标题可能并不完全是指我的意思,但我不知道该怎么写tbh。
让我们进入问题。我想拥有的是以下
表1
+---------+---------+
| Column1 | Column2 |
+---------+---------+
| Code1 | LCode1 |
| Code2 | LCode2 |
| Code3 | LCode3 |
+---------+---------+
表2
+---------+---------+
| Column3 | Column4 |
+---------+---------+
| LCode1 | string1 |
| LCode1 | string2 |
| LCode1 | string3 |
| LCode2 | String1 |
| LCode2 | String2 |
| LCode2 | String3 |
| LCode2 | String4 |
| LCode3 | String1 |
| LCode3 | String2 |
+---------+---------+
选择表应该是那样......
+-------+---------+-----------+---------+
| Index | Column1 | Column2-3 | Column4 |
+-------+---------+-----------+---------+
| 0 | Code1 | LCode1 | string1 |
| 1 | Code1 | LCode1 | string2 |
| 2 | Code1 | LCode1 | string3 |
| 0 | Code2 | LCode2 | string1 |
| 1 | Code2 | LCode2 | string2 |
| 2 | Code2 | LCode2 | string3 |
| 3 | Code2 | LCode2 | string4 |
| 0 | Code3 | LCode3 | string1 |
| 1 | Code3 | LCode3 | string1 |
+-------+---------+-----------+---------+
我曾尝试在两个表之间使用ROW_NUMBER和连接语句,但遗憾的是我没有运气。只有当我对指定的Column2-3值使用WHERE语句而不是全部它们时才有可能。 例如
SELECT ROW_NUMBER() AS Index, * FROM Table1 T1 JOIN Table2 T2 ON T1.Column2 = T2.Column3 Order By Index
提前致谢。
答案 0 :(得分:0)
您似乎想要:
SELECT ROW_NUMBER() OVER (PARTITION BY T1.column1 ORDER BY T2.column4) - 1 AS seqnum,
T1.*, T2.*
FROM Table1 T1 JOIN
Table2 T2
ON T1.Column2 = T2.Column3
ORDER BY seqnum;
index
是列的错误名称,因为它是SQL关键字。
答案 1 :(得分:0)
尝试在查询中使用PARTITION BY
我希望能帮助你。