2013-01-23 31 views
0

如果我有一列的表值α,雅尊,β,棕色,查理,保鮮熱門功能爲每個字母

我要如何像雅尊的價值觀,棕色和堅持,因爲「人」在阿爾法至上「AZ」的雅尊。我開始在SQL 2005

Select top 1 columnA from TableA order by ColumnA desc 

它給我的只有1結果使用這個,但我需要得到每個字母AB和C.

謝謝提前

+0

不清楚。嘗試添加更多細節或表格。 – Arpit

+0

我想按字母順序排列每個起始字母的最大值。 – Ram

回答

1

你的問題有點不清楚,但我假設你想爲每個首字母最大時(按字母順序排序)值。也就是說,如果這是一本字典,您希望a的最後一項,b的最後一項,等等。如果是這樣,請嘗試:

SELECT MAX(myCol) 
FROM myTable 
GROUP BY LEFT(myCol,1) 

SQL Fiddle

+0

+1巧妙。我也認爲與其他兩個答案相同的方式,但這是不同的和容易的。 – Kaf

+0

謝謝!我不是很清楚,但你給了我正確的答案。你已經解釋清楚了。非常感謝你! – Ram

1

我會推測,「字母」是指「第一個字母」。您可以使用row_number()解決這個問題:

select columnA 
from (select columnA, 
      row_number() over (partition by left(columnA, 1) order by columnA desc) as seqnum 
     from TableA 
    ) t 
where seqnum = 1 
order by columnA 
0

我想你想的第一個字母來劃分,並得到一個詞一個字母。

你可以使用一個CTERow_Number功能:

WITH cte 
    AS (SELECT ColumnA, 
       rn=Row_number() 
        OVER( 
         partition BY Substring(ColumnA, 1, 1) 
         ORDER BY ColumnA DESC) 
     FROM TableA) 
SELECT * 
FROM cte 
WHERE rn = 1 

Demo

結果:

azera 
brown 
cling