2017-10-17 79 views
0

首先,我是一個SQL初學者。SQL:如何統計一個字符串中每個元音的個數

我有一個名爲State在表如下圖所示

State 
Karnataka 
Uttar Pradesh 
Tamilnadu 
Telangana 
Kerela 
Andhra Pradesh 

我想知道有多少元音存在於每個狀態和結果應該是單獨爲每個元音在那裏我有數據列。

預期輸出:

State   Count of a Count of e Count of i Count of o Count of u 
Karnataka  4   0   0   0   0 
Uttar Pradesh 2   1   0   0   1 
+1

這確實聞起來像一門功課。下次至少要先嚐試一些事情,否則你永遠不會學習。 –

+0

@JuanCarlosOropeza,當然!謝謝 – lohith

+1

事實上,它是學術而不是就業與我們中的一些人無關。這是一個很難回答的問題,所以如果它是作業,就選擇一個具有挑戰性的課程表示讚賞。然而,如果你先嚐試自己的事情,你會從中獲得更多。 –

回答

3

請嘗試以下SQL:

SELECT 
State, 
LEN(state)-LEN(REPLACE(state,'a','')) 'Count of a', 
LEN(state)-LEN(REPLACE(state,'e','')) 'Count of e', 
LEN(state)-LEN(REPLACE(state,'i','')) 'Count of i', 
LEN(state)-LEN(REPLACE(state,'o','')) 'Count of o', 
LEN(state)-LEN(REPLACE(state,'u','')) 'Count of u' 
FROM TableName 
1

使用PIVOT:

CREATE TABLE #TEST ([STATE] NVARCHAR(MAX)) 

INSERT INTO #TEST VALUES ('Karnataka' ) 
INSERT INTO #TEST VALUES ('Uttar Pradesh') 
INSERT INTO #TEST VALUES ('Tamilnadu' ) 
INSERT INTO #TEST VALUES ('Telangana' ) 
INSERT INTO #TEST VALUES ('Kerela'  ) 
INSERT INTO #TEST VALUES ('Andhra Pradesh') 

SELECT * 
FROM 
(
SELECT [STATE], N, LEN([STATE]) - LEN(REPLACE([STATE], N,'')) AS VOWELCOUNT 
FROM #TEST 
CROSS JOIN (VALUES('A'),('E'),('I'),('O'),('U')) AS A(N) 
) PVT 
PIVOT (MAX(VOWELCOUNT) FOR N IN ([A],[E],[I],[O],[U])) AS D 
相關問題