如何在 SQL 的存储过程中实现?(100分)

  • 主题发起人 主题发起人 question
  • 开始时间 开始时间
Q

question

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过一个存储过程拆分字符串 '1,2,3,11,32,454' 为
1
2
3
11
32
454
?
SOS
 
为何要通过一个存储过程拆分字符串 ?
 
看情形更应该做成PROC或FUNC
如果分解后的字串要在SQL中使用,
再通过带变量的SQL实现
 
請看以下例子希望能給你一個啟示(該例有錯),不過,
建議你用前臺,前臺很容易通過循環解.
declare @s char(100),@j char(100)
select @s='12,123,123,1'
while @s<>''
begin
select @j=substring(@s,1,(charindex(',',@s) - 1)),@s=substring(@s,(charindex(',',@s) + 1),1000)
select @j,@s
end
 
MSSQL &amp; Sybase:
//gxg8816,请指教,呵呵,我的第一个MSSQL Procedure

create procedure MySplit(@p_String varchar(100))
as
declare
@v_Char varchar(1)
@v_TempSubStr varchar(100)
@v_i int
@v_Length int
begin
select @v_Length=datalength(@p_String)
select @v_i=0
select @v_TempSubStr=' '
while @v_i<@v_Length
begin
select @v_i=@v_i+1
select @v_Char=substring(@p_String,v_i,1)
if @v_Char=','
begin
/* @v_TempSubStr就是你需要的Sub字符串 */
select @v_TempSubStr=' '
end
else
select @v_TempSubStr=Trim(@v_TempSubStr)+@v_Char
end
end
go

 
多人接受答案了。
 
后退
顶部