2009-09-30 13 views
0

輸入:AA1字符在SQL Server數

輸出將是:

Char Count 
A  2 
1  1 
+0

我們在做你的功課嗎? http://stackoverflow.com/questions/1495948/how-to-find-the-highest-consecutive-number-set-based-approach – gbn 2009-09-30 06:21:10

+0

你的例子結果似乎不符合數據...如果它不是「C」而不是「c」?爲什麼結果中沒有「1」,如果應該有一個,計數是兩到三? – Guffa 2009-09-30 06:42:40

回答

2

這是更容易,因爲它的簡單計數,而該個連續程序計數您的其他問題。

DECLARE @Numbers TABLE (Num smallint NOT NULL PRIMARY KEY) 

INSERT @Numbers (Num) 
SELECT TOP 12 
    ROW_NUMBER() OVER (ORDER BY c1.NAME) 
FROM 
    sys.columns c1 

DECLARE @STuff TABLE (Seq char(12) NOT NULL PRIMARY KEY) 

INSERT @STuff (Seq) VALUES ('12AABCCDDDDE') 
INSERT @STuff (Seq) VALUES ('333345RRRR11') 

SELECT 
    Seq, Single, COUNT(*) 
FROM 
    @Numbers N 
    CROSS APPLY 
    (SELECT Seq, SUBSTRING(Seq, Num, 1) AS Single FROM @Stuff) S 
GROUP BY 
    Seq, Single 
HAVING 
    COUNT(*) > 1 
ORDER BY 
    Seq, Single