특정 문자가 문자열에 나타나는 횟수
문자열에 특정 문자가 나타나는 횟수를 계산하는 MS SQL Server 기능이 있습니까?
이에 대한 직접적인 기능은 없지만 대체 기능으로 수행할 수 있습니다.
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
기본적으로 제거된 문자 수와 인스턴스 수를 알려줍니다.
추가:
위의 값을 검색 중인 문자열의 길이로 나누어 다중 문자 문자열의 발생 횟수를 계산하도록 확장할 수 있습니다.예:
declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'
select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount)
시퀀스를 바꾼 후 문자열의 길이를 확인합니다.
declare @s varchar(10) = 'aabaacaa'
select len(@s) - len(replace(@s, 'a', ''))
>>6
를 사용하여 이 작업을 수행할 수 있습니다.replace그리고.len.
개수:x의 등장인물.str:
len(str) - len(replace(str, 'x', ''))
SQL SERVER 2016부터 이 기능을 사용합니다.
Select Count(value) From STRING_SPLIT('AAA AAA AAA',' ');
-- Output : 3
이 함수를 카운트 함수와 함께 사용하면 문자열에 몇 개의 문자가 있는지 알 수 있습니다.
시도:
declare @t nvarchar(max)
set @t='aaaa'
select len(@t)-len(replace(@t,'a',''))
인라인으로 할 수 있지만 열 데이터의 공백은 주의해야 합니다.데이터 길이()를 사용하는 것이 좋습니다.
SELECT
ColName,
DATALENGTH(ColName) -
DATALENGTH(REPLACE(Col, 'A', '')) AS NumberOfLetterA
FROM ColName;
- 또는 - 2자로 교체합니다.
SELECT
ColName,
-LEN(ColName)
+LEN(REPLACE(Col, 'A', '><')) AS NumberOfLetterA
FROM ColName;
SQL 서버에 대한 함수:
CREATE function NTSGetCinC(@Cadena nvarchar(4000), @UnChar nvarchar(100))
Returns int
as
begin
declare @t1 int
declare @t2 int
declare @t3 int
set @t1 = len(@Cadena)
set @t2 = len(replace(@Cadena,@UnChar,''))
set @t3 = len(@UnChar)
return (@t1 - @t2) / @t3
end
비주얼 베이직 및 기타 코드:
Public Function NTSCuentaChars(Texto As String, CharAContar As String) As Long
NTSCuentaChars = (Len(Texto) - Len(Replace(Texto, CharAContar, ""))) / Len(CharAContar)
End Function
특정 문자의 발생 횟수를 계산합니다.
DECLARE @char NVARCHAR(50);
DECLARE @counter INT = 0;
DECLARE @i INT = 1;
DECLARE @search NVARCHAR(10) = 'o'
SET @char = N'Hello World';
WHILE @i <= LEN(@char)
BEGIN
IF SUBSTRING(@char, @i, 1) = @search
SET @counter += 1;
SET @i += 1;
END;
SELECT @counter;
이 코드를 사용하십시오. 완벽하게 작동합니다.저는 두 가지 매개 변수를 허용하는 sql 함수를 만들었습니다. 첫 번째 매개 변수는 검색하고자 하는 긴 문자열이며 최대 1500자까지 문자열 길이를 허용할 수 있습니다(물론 확장하거나 텍스트 데이터 유형으로 변경할 수도 있습니다).그리고 두 번째 매개변수는 발생 횟수를 계산하고자 하는 부분 문자열입니다. (최대 200자입니다. 물론 필요에 따라 변경할 수 있습니다.)출력은 정수이고, 주파수 수를 나타냅니다. 출력을 나타내는 것은...
CREATE FUNCTION [dbo].[GetSubstringCount]
(
@InputString nvarchar(1500),
@SubString NVARCHAR(200)
)
RETURNS int
AS
BEGIN
declare @K int , @StrLen int , @Count int , @SubStrLen int
set @SubStrLen = (select len(@SubString))
set @Count = 0
Set @k = 1
set @StrLen =(select len(@InputString))
While @K <= @StrLen
Begin
if ((select substring(@InputString, @K, @SubStrLen)) = @SubString)
begin
if ((select CHARINDEX(@SubString ,@InputString)) > 0)
begin
set @Count = @Count +1
end
end
Set @K=@k+1
end
return @Count
end
언급URL : https://stackoverflow.com/questions/9789225/number-of-times-a-particular-character-appears-in-a-string
'programing' 카테고리의 다른 글
| WPF에서는 트리거 순서가 중요합니까? (0) | 2023.04.28 |
|---|---|
| WPF 데이터 바인딩과 함께 Entity Framework를 사용하는 모범 사례 (0) | 2023.04.28 |
| "양수" 키워드는 파이썬에서 어떤 역할을 합니까? (0) | 2023.04.28 |
| 문자 배열을 문자열로 변환하는 방법은 무엇입니까? (0) | 2023.04.28 |
| 와의 차이점은? (0) | 2023.04.28 |