2017-10-17 2 views
0

Tout d'abord, je suis un débutant en SQL.SQL: Comment compter le nombre de voyelle séparément dans une chaîne

J'ai une colonne appelée State dans une table où j'ai données comme indiqué ci-dessous

State 
Karnataka 
Uttar Pradesh 
Tamilnadu 
Telangana 
Kerela 
Andhra Pradesh 

Je veux savoir combien de voyelles sont présentes dans chaque état et le résultat doit être séparé pour chaque voyelle.

Résultats escomptés:

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

Cette odeur vraiment un devoir. La prochaine fois au moins, essayez quelque chose d'abord sinon vous n'apprendrez jamais. –

+0

@JuanCarlosOropeza, bien sûr! Merci – lohith

+1

Le fait que ce soit académique au lieu d'emploi n'est pas pertinent pour certains d'entre nous. C'est une question difficile, donc si c'est devoirs, compliments sur la sélection d'un cours difficile. Cependant, vous en tirerez davantage profit si vous essayez les choses vous-même en premier. –

Répondre

3

S'il vous plaît essayer ci-dessous 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

En utilisant 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