mssql 초성검색 function 만들기
제목 : mssql 초성 검색 function 만들기
소스 :
1. 아래 쿼리문 실행으로 function 생성
CREATE FUNCTION [dbo].[UTF8_Search1stText]
(
@Value NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @Rtn NVARCHAR(MAX)
DECLARE @Temp NVARCHAR(2)
DECLARE @SerchValue NVARCHAR(MAX)
DECLARE @i INT
DECLARE @n INT
SET @Rtn = ''
SET @i = 1
SET @n = LEN(@Value)
WHILE @i <= @n
BEGIN
SET @Temp = Substring(@Value, @i, 1)
SET @SerchValue = (CASE @Temp
WHEN 'ㄱ' THEN '[가-깋]'
WHEN 'ㄲ' THEN '[까-낗]'
WHEN 'ㄴ' THEN '[나-닣]'
WHEN 'ㄷ' THEN '[다-딯]'
WHEN 'ㄸ' THEN '[따-띻]'
WHEN 'ㄹ' THEN '[라-맇]'
WHEN 'ㅁ' THEN '[마-밓]'
WHEN 'ㅂ' THEN '[바-빟]'
WHEN 'ㅃ' THEN '[빠-삫]'
WHEN 'ㅅ' THEN '[사-싷]'
WHEN 'ㅆ' THEN '[싸-앃]'
WHEN 'ㅇ' THEN '[아-잏]'
WHEN 'ㅈ' THEN '[자-짛]'
WHEN 'ㅉ' THEN '[짜-찧]'
WHEN 'ㅊ' THEN '[차-칳]'
WHEN 'ㅋ' THEN '[카-킿]'
WHEN 'ㅌ' THEN '[타-팋]'
WHEN 'ㅍ' THEN '[파-핗]'
WHEN 'ㅎ' THEN '[하-힣]'
ELSE @Temp END)
SET @Rtn = RTRIM(@Rtn) + @SerchValue
SET @i = @i + 1
END
Return @Rtn
END
내용 :
2. 사용법
select * from T_GOODS where PATINDEX(dbo.UTF8_Search1stText('ㄱ') + '%' , Title) > 0
예제 소스 파일 :
출처 :