表Code
:
Col1
----
A1
A2
A3
B1
B2
C1
D1
D2
(我还有其他专栏)
我正在尝试创建每个可能的组合排除自身(即COL1:A1 COL2:A1)排除相反的方式(即A1 A2,A2,A1)......它们将在不同的列中并且在那里还包括其他列。我是新手,对我很轻松:)
到目前为止,我有:
SELECT
a.Col1, a.[differentcolumn],
b.Col1, b.[differentcolumn]
FROM
[dbo].code a
CROSS JOIN
[dbo].code b
WHERE
a.[col1] != b.[col1]
这几乎是它,但它给了我:
A1 A2
A2 A1
我只想要一种方式(第一种方式)。我该怎么做?
答案 0 :(得分:2)
我对你的要求并不完全清楚,但你真的需要这个吗?
SELECT
a.Col1, a.[differentcolumn],
b.Col1, b.[differentcolumn]
FROM
[dbo].code a
INNER JOIN [dbo].code b ON a.[col1] < b.[col1]
这会将表格加到col1
上,但使用<
表示您无法看到左侧副本的col1
大于{{1}}的值或等于右手副本,这似乎是你想要的。