2014-09-24 57 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