Declare @str varchar(100)
SET @str='aaa,bb,ccc,d,ee,ffff'
while charindex(',',str)>0
begin
print left(@str,charindex(',',str)-1)
--left(@str,charindex(',',str)-1)这块就是循环截取下来的每一部分,对其进行操作就可以了
set @str = stuff(@str,1,charindex(',',str),'')
end
解决方案 »
- ms-sqlserver 自增字段 最大值问题
- 如何区分字符串是中国人名还是外国人名
- 为什么在存储过程使用 select top 整型参数变量 * from table 不行?
- 如何用SELECT查询两个表中的不同记录
- 关于流水号和触发嚣
- 连接SQL SERVER服务器的问题
- 关于数字结构的问题
- 一个生成新表的问题!
- 高分送上,怎样往vb的用RICHTEXTBOX控件 控件存入化学分子式,后台数据库为SQL SERVER 7.0
- 连接SQL Server 2000遇到一个奇怪问题.
- 80万条记录,select top 100 * 需要4分钟,不知道是什么问题
- 如何将多个CREATE VIEW 语句放在一个事务中
SET @str='aaa,bb,ccc,d,ee,ffff'
select top 2000 id=identity(int,1,1) into # from syscolumns a,syscolumns b
select
iNewDesc=substring(a.iDesc,b.id,charindex(',',a.iDesc+',',b.id)-b.id)
from (select @str as idesc ) a, # b
where substring(','+a.iDesc,b.id,1)=','
order by a.idesc,b.iddrop table #
/*
iNewDesc
----------------------------------------------------------------------------------------------------
aaa
bb
ccc
d
ee
ffff(所影响的行数为 6 行)
*/
go
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='aaa,bb,ccc,d,ee,ffff' select * from dbo.fn_split(@s,',') /*
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
aaa
bb
ccc
d
ee
ffff(影響 6 個資料列)
*/
--学楼主把@弄掉了
/*------------------------
Declare @str varchar(100)
SET @str='aaa,bb,ccc,d,ee,ffff'
while charindex(',',@str)>0
begin
print left(@str,charindex(',',@str)-1)
--left(@str,charindex(',',str)-1)这块就是循环截取下来的每一部分,对其进行操作就可以了
set @str = stuff(@str,1,charindex(',',@str),'')
end
------------------------*/
aaa
bb
ccc
d
ee
Declare @str varchar(1000)
SET @str='aaa,bb,ccc,d,ee,ffff'
set @str=replace(@str,',',''' union all select ''')
exec('select col=''' + @str+'''')