MS-SQL에서 String Array을 Table로 변환시키는 함수(Split 기능)를 만들어보자.
MS-SQL에서 프로시저를 만들다보면 가끔 String Array( ','로 구분되는 String 같은)를 테이블로 변환하면 편하게 진행할수 있을경우가 있다.
(보통 WHILE을 돌릴때 혹은 재정렬이 필요할경우)
그럴경우 아래 Function을 미리 정의해놓고 사용하면 편리하게 이용이 가능하다.
CREATE FUNCTION fnStringToTable (@String Nvarchar(4000), @separator nvarchar(10))
RETURNS @re TABLE
(col nvarchar(100))
AS
BEGIN
DECLARE @col Nvarchar(100)
DECLARE @len smallint
DECLARE @cur smallint
DECLARE @next smallint
SET @len = Len(@String)
SET @cur = 1
WHILE (@len > 0)
BEGIN
SET @next = 0
SELECT @next = CHARINDEX(@separator, @String, @cur)
IF @next = 0
BEGIN
SELECT @col = SUBSTRING(@String, @cur, (@len - @cur + 1))
IF RTRIM(LTRIM(@col)) <> ''
INSERT @re VALUES(RTRIM(LTRIM(@col)))
BREAK
END
ELSE
BEGIN
SELECT @col = SUBSTRING(@String, @cur, (@next - @cur))
SET @cur = @next + 1
END
IF RTRIM(LTRIM(@col)) <> ''
INSERT @re VALUES(RTRIM(LTRIM(@col)))
END
RETURN
END
관련글
[MS-SQL] 데이터베이스 일별 집계 테이블 채크 쿼리 (Daily Table Chack Query) |
[MS-SQL] [MS-SQL] 데이터베이스 시간별 집계 테이블 채크 쿼리 (Hourly Table Check Query) |
날다의 운영환경 | |
---|---|
본체 | DeskTop |
O S | Windows7 Ultimate K |
Application | Microsoft SQL Server Management Studio 2012 |
MS-SQL | Micorsoft SQL Server 2008 R2 (10.50.1765.0) |
'DBMS > MS-SQL' 카테고리의 다른 글
[MS-SQL] Server 버전채크 (0) | 2018.06.05 |
---|---|
[MS-SQL][Query] 데이터베이스 시간별 집계 테이블 채크 쿼리 (Hourly Table Check Query) (2) | 2018.06.04 |
[MS-SQL][Query] 데이터베이스 일별 집계 테이블 채크 쿼리 (Daily Table Check Query) (0) | 2018.06.01 |
[MS-SQL] 오라클의 dual 사용하기 (0) | 2018.05.31 |
[MS-SQL] GETDATE() 간단히 날짜 더하기 빼기 (0) | 2018.05.31 |