2013-04-11 59 views
0

是否可以編寫SQL以從表中將重複子記錄字符串從表中選擇爲單個記錄?我只是想組所以結果看起來是這樣的畫面:選擇記錄的重複子字符串以單個記錄使用分組

enter image description here

我嘗試這一點,但沒有奏效。

SELECT DATE, SUBSTRING(DATE, 3, 6) as Addrow FROM dbo.n4abs_premi_olah GROUP BY Addrow 

任何意見將不勝感激。謝謝 !

回答

3
SELECT DISTINCT(DATE_FORMAT(date, '%m/%Y')) month 
FROM Table 

如果你確實需要使用GROUP BY(因爲你也選擇其他的集合體),這樣做:

SELECT DATE_FORMAT(date, '%m/%Y')) month, other stuff... 
FROM Table 
GROUP BY month 
+0

謝謝巴爾瑪。 但是,我有一個問題:如果列'日期'不是日期。我的意思是它可能是一個字符串,例如記錄中的「名字」「傑弗遜」,「布朗登」,「安娜」,「範納」我喜歡結果爲「on」和「nna」。怎麼樣? – 2013-04-11 02:52:16

+0

您可以使用像'SUBSTR()'這樣的函數來獲取您關心的字符串部分,並以相同的方式使用'DISTINCT'或'GROUP BY'。 – Barmar 2013-04-11 03:00:54

+0

Thx再次Barmar! 我嘗試這個並且工作。 SELECT DISTINCT SUBSTRING(DATE,4,7)as Addrow FROM TABLE ORDER BY Addrow。 但是當我嘗試選擇其他列時會出錯。 SELECT DISTINCT SUBSTRING(DATE,4,7)as Addrow,Column1,Column2 FROM TABLE ORDER BY Addrow。 如何解決它? – 2013-04-11 03:13:06

0

這裏有很多方法可以做到這一個:

SELECT DISTINCT CONCAT(MONTH(date), '/', YEAR(date)) FROM table; 
+0

什麼如果列'date'是'字符串',我問@Barmar評論? thx – 2013-04-11 02:54:32

+0

我得說,這是一個奇怪的請求:)類似'選擇'從表'其中col'像'%on%'聯合選擇'nna'從表'其中列'%nna%''列。 'union'會使結果不同,所以如果你只是尋找一個子字符串(而不是'union'),那麼就從'select distinct'開始。 – 2013-04-11 03:07:36

+0

偉大的吉布斯! 我越來越近了,如何解決我的問題@Barmar評論? 再次感謝... – 2013-04-11 03:16:37