sql TEXT、NTEXT字段拆分的问题
Jun 07, 2016 pm 05:46 PM
sql TEXT、NTEXT字段拆分的问题
SET NOCOUNT ON
CREATE TABLE #T (C NTEXT)
GO
INSERT INTO #T VALUES('')
GO
CREATE TABLE #T2 (C CHAR(8))
GO
DECLARE @S1 VARCHAR(8000),@S2 VARCHAR(8000),@I INT
SET @S1=''
SET @S2=''
SET @I=1
WHILE @I1000
BEGIN
SET @S1=@S1+'A'+RIGHT('0000000'+CAST(@I AS VARCHAR(5)),6)+','
SET @S2=@S2+'B'+RIGHT('0000000'+CAST(@I AS VARCHAR(5)),6)+','
SET @I=@I+1
END
DECLARE @P BINARY(16)
SELECT @P = TEXTPTR(C) FROM #T
UPDATETEXT #T.C @P NULL NULL @S1
UPDATETEXT #T.C @P NULL NULL @S2
SELECT DATALENGTH(C) FROM #T
DECLARE @DL INT
SET @DL = (SELECT DATALENGTH(C) FROM #T)/2
SET @I=1
WHILE @I @DL
BEGIN
INSERT INTO #T2 SELECT SUBSTRING(C,@I,7) FROM #T
SET @I=@I+8
END
SELECT * FROM #T2
/*
功能:实现split功能的函数
*/
create function dbo.fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as
begin
declare @i int
set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)
while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))
set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
end
if @inputstr '\'
insert @temp values(@inputstr)
return
end
go
--调用
declare @s varchar(1000)
set @s='1,2,3,4,5,6,7,8,55'
select * from dbo.fn_split(@s,',')
drop function dbo.fn_split

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명

Select Channels의 비동기 처리 방법 golang을 이용한 Go 동시 프로그래밍

Python 프로그래밍에서 dict 및 set의 일반적인 사용 목록
