728x90
반응형
728x170
▶ 문자열에서 테이블 생성하기 예제
SELECT A.*
FROM dbo.CreateTable('1,2,3,4,5', ',') AS A;
728x90
▶ 문자열에서 테이블 생성하기
CREATE FUNCTION dbo.CreateTableFromString
(
@P_String NVARCHAR(MAX) -- 문자열
,@P_Separator NVARCHAR(10) -- 분리자
)
RETURNS @Result TABLE(Item NVARCHAR(100))
AS
BEGIN
DECLARE @Temp NVARCHAR(MAX);
DECLARE @Start INT;
DECLARE @End INT;
DECLARE @Length INT;
DECLARE @Index INT;
SET @Temp = ' ' + @P_String;
SET @Start = 1;
SET @End = 0;
SET @Index = 0;
WHILE(@Start <> 0)
BEGIN
SET @End = CHARINDEX(@P_Separator, @Temp, @Start);
IF @End <> 0
BEGIN
SET @Length = @End - @Start;
END
ELSE
BEGIN
SET @Length = LEN(@Temp) - @Start + 1;
END;
INSERT INTO @Result(Item) VALUES (RTRIM(LTRIM(SUBSTRING(@Temp, @Start, @Length))));
SET @Start = @End + 1;
IF @End = 0
BEGIN
RETURN;
END;
END;
RETURN;
END
728x90
반응형
그리드형(광고전용)
'Database > SQLServer' 카테고리의 다른 글
[DATABASE/SQLSERVER] 디스크 드라이브 용량 구하기 (0) | 2014.12.05 |
---|---|
[DATABASE/SQLSERVER] SELECT 잠금 해제 설정하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] LIKE 연산자 대신 INSTR 함수 사용하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] 테이블 및 행 수 표시하기 (0) | 2014.12.04 |
[DATABASE/SQLSERVER] 데이터베이스 스키마 조회하기 (0) | 2014.12.04 |
[DATABASE/SQLSERVER] SET ROWCOUNT 사용하기 (0) | 2014.12.04 |
[DATABASE/SQLSERVER] ROW_NUMBER 함수 사용하기 (0) | 2014.12.04 |
[DATABASE/SQLSERVER] 컬럼 정보 조회하기 (0) | 2014.12.04 |
[DATABASE/SQLSERVER] PIVOT 함수를 이용한 동적 집계하기 (0) | 2014.12.04 |
[DATABASE/SQLSERVER] GROUP BY-CASE문을 이용한 동적 집계하기 (0) | 2014.12.04 |
댓글을 달아 주세요