Sduty/MS-SQL

c#, asp.net 에서 받은 split 대상 문장열을 split으로 분할하여 사용

돌멘 2018. 5. 4. 17:00

1. STRING_SPLIT()을 사용하기 전 db에서 사용 가능하게 아래 문장으로 db를 수정한다

   USE [MASTER]

   GO

   ALTER DATABASE [db-name] SET COMPATIBILITY_LEVEL=130

   GO

   를 실행하여 db를 변경한다.



2. SP 적용

  alter procedure sp_gwaa03_d

         @APP_CD NVARCHAR(315),



   DECLARE @TEMP_APP_CD NUMERIC(18,0)
  --SPLIT
  SELECT IDENTITY(INT ,1,1) AS W_SEQ, VALUE INTO #TEMP_APP_CD FROM  STRING_SPLIT(@APP_CD,',')

  이렇게 생성한후


   WHILE(EXISTS(SELECT * FROM #TEMP_APP_CD A WHERE A.W_SEQ = @W_SEQ ))
   BEGIN
           SELECT @TEMP_APP_CD  = VALUE
              FROM #TEMP_APP_CD
            WHERE W_SEQ = @W_SEQ
   
           --결재문서정보 삭제로 UPDATE
           UPDATE TB_GWAA01 SET DEL_YN='Y' WHERE APP_CD = @TEMP_APP_CD AND DOC_GB = @DOC_GB AND DEL_YN='N'

                 AND USERID = @USER_ID;

로 사용한다


참조(SP_GWAA03_D)


3. 참조 예제

    1) SELECT * FROM STRING_SPLIT('ABC,BCD, DEF', ',')

    2) SELECT * FROM STRING_SPLIT('ABC,BCD, DEF', ',') ORDER BY VALUE ASC

    3) DECLARE @STRING VARCHAR(20) = 'ABC,BCD, DEF', @DE CHAR(1) = ','

        SELECT * FROM STRING_SPLIT(@STRING, @DE)