最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

sqlTEXT、NTEXT字段拆分的问题

来源:动视网 责编:小采 时间:2020-11-09 10:04:12
文档

sqlTEXT、NTEXT字段拆分的问题

sqlTEXT、NTEXT字段拆分的问题: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 I
推荐度:
导读sqlTEXT、NTEXT字段拆分的问题: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 I


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 @I<=1000
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

文档

sqlTEXT、NTEXT字段拆分的问题

sqlTEXT、NTEXT字段拆分的问题: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 I
推荐度:
标签: sql 的问题 拆分
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top