在sql server中如何把一个字符串分割

kavoe 2002-12-27 05:39:24
在sql server中一个字符串由许多子串组成,如何把他们再分开为个个子串。
...全文
366 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝天 2002-12-28
  • 打赏
  • 举报
回复
哦,大力写的这个就是,哈哈
蓝天 2002-12-28
  • 打赏
  • 举报
回复
此题有一按钮算法--最快
pengdali 2002-12-28
  • 打赏
  • 举报
回复
declare @string varchar(1000)
set @string='aaaa,bbbb,cccc,dddd'
set @string='select * into ##tmp from (select '''+replace(@string,',','''as str union all select ''')+''') a'
exec(@string)
select * from ##tmp
drop table ##tmp
生活真美好 2002-12-28
  • 打赏
  • 举报
回复

use tempdb

--建立临时表保存各字符串
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TABLE1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TABLE1]
GO

CREATE TABLE [dbo].[TABLE1] (
[COL1] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO


declare @teststring varchar(1000)
declare @teststring1 varchar(200) --一个分隔的字符串
declare @testi1 int --现检查第几位字符,逗号位置
set @teststring = '1,22,333,4444,55555'
set @testi1 = 1
set @teststring1 = ''
print len(@teststring)
WHILE @testi1 <= len(@teststring)
BEGIN
if SUBSTRING(@teststring, @testi1, 1) = ','
BEGIN
INSERT INTO TABLE1 (COL1) VALUES (@teststring1)
set @teststring1 = ''
END
else
BEGIN
set @teststring1 = @teststring1 + SUBSTRING(@teststring, @testi1, 1)
END
set @testi1 = @testi1 + 1
END

if @teststring1 <> '' INSERT INTO TABLE1 (COL1) VALUES (@teststring1)
go
pengdali 2002-12-28
  • 打赏
  • 举报
回复
declare @aa varchar(100),@bb int,@cc int
set @aa='aaaa-bb-ca s a'

set @bb=0
set @cc=charindex('-',@aa)
select substring(@aa,@bb,@cc-@bb)
while @cc>0
begin
set @bb=@cc+1
set @cc=charindex('-',@aa,@bb)
select substring(@aa,@bb,case when @cc>0 then @cc-@bb else len(@aa) end)
end
pengdali 2002-12-28
  • 打赏
  • 举报
回复
declare @string varchar(1000)
set @string='aaaa,bbbb,cccc,dddd'
set @string='select '''+replace(@string,',','''as str union all select ''')+''''
exec(@string)
kavoe 2002-12-28
  • 打赏
  • 举报
回复
快点,答者有分
kavoe 2002-12-27
  • 打赏
  • 举报
回复
没明白,sql server中有没有能够从字符串中搜索出子串的函数,或者能够实现这种的办法,希望能够说的详细点。
CoolAbu 2002-12-27
  • 打赏
  • 举报
回复
MSSQL中没有数组的概念,不要朝数组方面想。
kavoe 2002-12-27
  • 打赏
  • 举报
回复
子串由逗号隔开
kavoe 2002-12-27
  • 打赏
  • 举报
回复
在线等待

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧