[MS-SQL] 문자열 함수 - 컬럼의 특정글자 갯수를 리턴하는 함수
다른분의 블로그에서 퍼다가 썼던건데 출처가 기억이안난다.
USE DB명
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[CharCount]
(
@P_STR VARCHAR(4000)
,@P_PART VARCHAR(200)
)
RETURNS INT
AS
BEGIN
DECLARE @I INT;
DECLARE @J INT;
DECLARE @K INT;
IF @P_STR IS NULL OR @P_STR = '' BEGIN
RETURN 0;
END
IF @P_PART IS NULL OR @P_PART = '' BEGIN
RETURN 0;
END
SET @I = 1;
SET @J = 0;
SET @K = 0;
WHILE @I > 0 BEGIN
IF @I = 1 BEGIN
SET @I = CHARINDEX(@P_PART,@P_STR,1);
END ELSE BEGIN
SET @I = CHARINDEX(@P_PART,@P_STR,@I+1);
END
IF @I <> 0 BEGIN
SET @J = @J + 1;
END
END
RETURN @J;
END
USE DB명
SELECT CharCount(column,";") FROM table_a
등등 으로 사용하면된다.
MSSQL에 함수를 만드는건 기존엔 잘 사용하지않았는데 이렇게 SELECT, WHERE문에 사용할수있으면
부족한 함수를 많이 만들어써야겠다~
나같이 통계를 많이뽑아야하는 입장에선 완전 꿀 기능!!!
평소엔 프로시저만들어서 쓰곤했었는데 프로시저는 기존 쿼리에 조건문으로 넣을수없었는데 이건진짜 슈퍼개꿀이다 ㅎㅎ
자주 애용해야겠다!!! ㅎㅎ