我在表[SampleTable]上有一个名为[MyColumn]的列,我希望这个字符出现在列上的时间。角色是;
Excel有一个简单的解决方案 = LEN() - LEN(SUBSTITUTE(,“;”,“”))
答案 0 :(得分:3)
SELECT LEN(MyColumn) - LEN(REPLACE(MyColumn, ';', ''))
FROM SampleTable
WHERE ...
答案 1 :(得分:1)
为了在代码中获得最佳可读性,最好使用UDF。例如,here中的那个:
CREATE FUNCTION [dbo].[ufn_CountChar] ( @pInput VARCHAR(1000), @pSearchChar CHAR(1) )
RETURNS INT
BEGIN
DECLARE @vInputLength INT
DECLARE @vIndex INT
DECLARE @vCount INT
SET @vCount = 0
SET @vIndex = 1
SET @vInputLength = LEN(@pInput)
WHILE @vIndex <= @vInputLength
BEGIN
IF SUBSTRING(@pInput, @vIndex, 1) = @pSearchChar
SET @vCount = @vCount + 1
SET @vIndex = @vIndex + 1
END
RETURN @vCount
END
GO