2014-09-24 50 views
1

有没有办法让一列不同?我有一个查询,它将前两列和第三列的总和相加。在第2行中,我们有2 + 1 = 3;那么在第4行我们有1 + 2 = 3。有没有办法在我的陈述上加上限制/限制,以便我可以消除这些行?在SQL中只有1列不同?

这是我到目前为止有:

SELECT TableA.n AS ColumnA, TableB.n AS ColumnB, (TableA.n + TableB.n) as [Sum] 
FROM MyTable AS TableA CROSS JOIN MyTable AS TableB 
WHERE TableA.n <= 3 AND TableB.n <= 3 

我想也许我能做到这一点,但它不工作:distinct (TableA.n + TableB.n) as [Sum]

enter image description here

使用Microsoft SQL Server

回答

3

如果我理解正确,您可以要求:columnA < columnB

SELECT TableA.n AS ColumnA, TableB.n AS ColumnB, (TableA.n + TableB.n) as [Sum] 
FROM MyTable AS TableA CROSS JOIN 
     MyTable AS TableB 
WHERE TableA.n < TableB.n AND 
     TableA.n <= 3 AND TableB.n <= 3 ; 
+0

感谢您的帮助@GordonLinoff - 这对我的例子非常有用。谢谢。 – user3281388 2014-09-24 02:14:42

+0

我的示例查询是我正在处理的“简化”版本 - 是否有任何其他方式来执行此操作?我的要求之一是,第三列中的值只能显示一次。 - 这就是为什么我认为我应该使用不同的 – user3281388 2014-09-24 02:16:13

+0

@ user3281388。 。 。也许你应该提出另一个更能解释你真正需要的问题。这似乎是这个问题的答案。 – 2014-09-24 02:17:48