반응형

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

+ Recent posts