SQL:如何统计一个字符串中每个元音的个数
问题描述:
首先,我是一个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
答
请尝试以下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
答
使用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
这确实闻起来像一门功课。下次至少要先尝试一些事情,否则你永远不会学习。 –
@JuanCarlosOropeza,当然!谢谢 – lohith
事实上,它是学术而不是就业与我们中的一些人无关。这是一个很难回答的问题,所以如果它是作业,就选择一个具有挑战性的课程表示赞赏。然而,如果你先尝试自己的事情,你会从中获得更多。 –