MS-SQL 에서 초성 검색 할때는 이렇게...
CREATE FUNCTION [dbo].[UF_RegularExText] ( @Value NVARCHAR(50) ) RETURNS NVARCHAR(2000) AS BEGIN DECLARE @Rtn NVARCHAR(2000) DECLARE @Temp NVARCHAR(2) DECLARE @SerchValue NVARCHAR(20) 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
우선 위 와 같은 함수를 생성 합니다.
한글의 초성, 엄밀히 말하면 자음을 정규식화 하는것이지요.
그리고 PATINDEX 함수를 사용해서 아래 처럼 WHERE 절을 구성합니다.
한글의 초성, 엄밀히 말하면 자음을 정규식화 하는것이지요.
그리고 PATINDEX 함수를 사용해서 아래 처럼 WHERE 절을 구성합니다.
SELECT * FROM Table WHERE PATINDEX(UF_RegularExText('ㄱ') + '%' , Column) > 0