是否有一个查询将返回列中的单词总数?我找到了一些代码,可以让我计算字符串中的单词,但不能将它应用于整个列.
我首先创建了从http://www.sql-server-helper.com/functions/count-words.aspx找到的函数:
CREATE FUNCTION [dbo].[WordCount] ( @InputString VARCHAR(4000) )
RETURNS INT
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @WordCount INT
SET @Index = 1
SET @WordCount = 0
WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@InputString, @Index, 1)
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@InputString, @Index - 1, 1)
END
IF @PrevChar = ' ' AND @Char != ' '
SET @WordCount = @WordCount + 1
SET @Index = @Index + 1
END
RETURN @WordCount
END
GO
Run Code Online (Sandbox Code Playgroud)
接下来,在字符串上测试它:
DECLARE @String VARCHAR(4000)
SET @String = 'Health Insurance is an insurance against expenses incurred through illness of the insured.'
SELECT [dbo].[WordCount] ( @String )
Run Code Online (Sandbox Code Playgroud)
在此示例中,这将返回13.但是,我试图获取整个列的总计.例如,如果我有一个包含2行的列,并且每行包含此字符串,我希望它返回26以反映列中的总字数而不是单个字符串.
你可以总结这个函数调用:
SELECT SUM([dbo].[WordCount]([my_column]))
FROM [my_table]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
472 次 |
| 最近记录: |