[MS-SQL][FUNCTION] String to Table 변환 함수 (Split)
2018. 6. 1. 13:59
본체 | DeskTop |
---|---|
O S | Windows7 Ultimate K (Service Pack 1) |
APP | Microsoft SQL Server Management Studio 2012 |
MS-SQL | Micorsoft SQL Server 2008 R2 (10.50.1765.0) |
String Array To Table Function
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 > Sample' 카테고리의 다른 글
[MS-SQL] 루프문(WHILE)로 일일 집계 쿼리 일년치 한번에 돌리기 (0) | 2019.05.02 |
---|---|
[MS-SQL][Query] 멀티 데이터베이스 시간별 집계 테이블 채크 쿼리 (Hourly Table Check Query) (0) | 2018.06.04 |
[MS-SQL][Query] 멀티 데이터베이스 일별 집계 테이블 채크 쿼리 (Daily Table Check Query) (0) | 2018.06.01 |