2015-04-02 39 views
0

我在表中有重複項,我想選擇,而不是做一個選擇不同的所有12列我只希望3列爲不同。如果我在所有列上進行select select,那麼這3列仍然可能有我不想要的副本,因爲其他一些列是不同的。選擇*與不同的3列

我想看到所有列,但希望它是不同的僅3

我已經通過,並與問題解決方案試圖組,這是一個所謂的那些卻沒有工作複製。無論出於什麼原因,當我通過它來執行組時,只會執行查詢,如果我將表中的所有列包含在其中,而這不是我想要的,因爲我只希望3列不同。當我嘗試它時,「with c」就不會執行。

+1

'SELECT DISTINCT col1,col2,col3 FROM YourTable'? – Lamak 2015-04-02 15:54:54

+0

您如何在不重複前3個值的情況下查看其他列中的差異?我認爲示例結果將有助於解釋您希望查詢返回的內容。 – Danny 2015-04-02 15:56:21

回答

0

嘗試或類似的東西; 選擇從第1欄不同地方 選擇從山坳2個不同的地方 選擇從第2欄第

+0

類似的東西;我記得,它的工作原理 – haf 2015-04-02 16:00:41

0

使用row_number()不同:

select t.* 
from (select t.*, row_number() over (partition by col1, col2, col3 
            order by (select null)) as seqnum 
     from table t 
    ) t 
where seqnum = 1; 

這將選擇exacdtly一個不確定的一行三列的值的每個組合。

+0

所以我提出這個(我知道WHERE語句在SQL工作我有) 選擇T * 從(選擇噸。*,ROW_NUMBER()OVER(由植物,時間戳分區,FermBatchNumber order by(select null))as seqnum FROM dbo.FermKineticsNIR WHERE t。\「Timestamp \!」> = DATEADD(d,-30,getdate()) )t where seqnum = 1; 它不執行查詢,所以我可能有問題。你能告訴可能會發生什麼嗎? – bjbreitling 2015-04-02 18:08:45

+0

@bjbreitling。 。 。如果查詢沒有執行,那麼SQL Server應該給你一個錯誤信息,指出問題。 – 2015-04-02 22:06:48

+0

謝謝!我提交查詢通過其他軟件到MS SQL,所以我不得不做一些修改,但現在它效果很好!如果我有更高的代表,我會給這個投票! – bjbreitling 2015-04-03 14:42:37