반응형
Split 유형의 함수로 구분자로 몇번째 위치의 문자열 가져오기
-----------------------------------------------------------------------------------------------------------
-- Split 유형의 함수
-- 문자열에서 구분자(@iSeparator)로 몇번째 단어 가져오기
-- 예: SELECT 데이터베이스명.소유자명.fn_GetIdxDataLikeSplit('가-나-다',2,'-') --> '나'
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
-- 프로시저 생성
-----------------------------------------------------------------------------------------------------------
ALTER FUNCTION [dbo].[fn_GetIdxDataLikeSplit]
(
@iText VARCHAR(200),
@idx INT,
@iSeparator VARCHAR(10) = '-'
)
RETURNS VARCHAR(200)
AS
BEGIN
DECLARE @wData VARCHAR(200)
DECLARE @wText VARCHAR(200)
DECLARE @wSeparator VARCHAR(10)
DECLARE @wNum INT
SET @wData = ''
SET @wNum = 1;
SET @wSeparator = LTRIM(RTRIM(@iSeparator));
SET @wText = LTRIM(RTRIM(@iText)) + @wSeparator;
IF CHARINDEX(@wSeparator, @iText) > 0
BEGIN
WHILE @idx >= @wNum
BEGIN
IF CHARINDEX(@wSeparator, @wText) > 0
BEGIN
-- 문자열의 인덱스 위치의 요소를 반환
SET @wData = SUBSTRING(@wText, 1, CHARINDEX(@wSeparator, @wText) - 1);
SET @wData = LTRIM(RTRIM(@wData));
-- 반환된 문자는 버린후 좌우공백 제거
SET @wText = LTRIM(RTRIM(RIGHT(@wText, LEN(@wText) - (LEN(@wData) + LEN(@iSeparator)))))
END
ELSE
BEGIN
SET @wData = ''
END
SET @wNum = @wNum + 1
END
END
ELSE
BEGIN
SET @wData = @iText
END
RETURN(@wData)
END
반응형
'프로그래밍 > DataBase' 카테고리의 다른 글
[PostgreSql] PostgreSQL의 프로세스 구조 (0) | 2021.01.05 |
---|---|
쿠팡 데이터 플랫폼의 진화 (0) | 2020.12.09 |
DB Browser for SQLite (0) | 2020.10.21 |
MSSQL - JSON 데이터 인덱싱 (0) | 2020.08.19 |
oracle foreign key 생성/삭제 (0) | 2019.12.26 |