프로시저 파라미터 값을 던질때 'AAA^BBB^CCC^DDD^' 이렇게 던지면 프로시저 내부에서 LOOP처리 하며 일일이

계산하여 처리했는데 그 해결책을 찾은 듯 하다!


--------------------------------------------------------------------------------------------------------------

CREATE FUNCTION [dbo].[SPLIT_STR](@S_VAL NVARCHAR(4000), @S_SPLIT_CHAR NVARCHAR(1))

RETURNS @T_SPLIT TABLE(NUM INT, VAL NVARCHAR(4000))

AS

-- SELECT * FROM DBO.SPLIT_STR('AB|BC|CD', '|')

BEGIN

   

   DECLARE @oPos INT, @nPos INT, @i INT

   DECLARE @tempVar NVARCHAR(4000)

   

   SET @oPos = 1

   SET @nPos = 1

   SET @i    = 0

   WHILE(@nPos > 0)

   BEGIN

      SET @nPos = CHARINDEX(@S_SPLIT_CHAR, @S_VAL, @oPos)

      IF @nPos = 0

         SET @tempVar = RIGHT(@S_VAL, LEN(@S_VAL) - @oPos + 1)

      ELSE

         SET @tempVar = SUBSTRING(@S_VAL, @oPos, @nPos - @oPos)

      

      IF LEN(@tempVar) > 0

         INSERT INTO @T_SPLIT VALUES (@i, @tempVar)

      

      SET @oPos = @nPos + 1

      SET @i = @i + 1

      

   END

   

   RETURN

   

END



[참조] http://cong4u.tistory.com/157


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,