sql随机截取字符串的数字

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:51:18
字符串1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24......
100
现在在sql2000中怎样随机得到里面的数字,
如:1,2,3,4,5,6,7,8,9,10 我随机出来的后是8,那么将该字符串的8取出,
之后该字符串变为1,2,3,4,5,6,7,9,10
该随机数不是由另外产生,该随机数为从该字符串提取,

首先 ,要肯定的是在该字符串中是没办法取到随机数的。
如果要取随机数,要先把字符串转换为行数据,放于1列中。
然后再随机取一个数,最后再把行数据拼接为字符串即可。

--下面两句定义了表变量作参考,使用时去掉,给@str赋值查询时换成你自己的表
declare @temptb table(id int, vals varchar(100))
insert into @temptb values(1, '1,2,3,4,5')
--

declare @tb table(val varchar(50))
declare @str varchar(100)
declare @length int
select @str = vals from @temptb where id = 1
set @str = @str + ','
set @length = len(@str)
while @length > 0
begin
insert into @tb values(substring(@str, 1, charindex(',', @str)))
set @str = substring(@str, charindex(',', @str) + 1, len(@str))
set @length = len(@str)
end
select top 1 replace(val, ',', '') num from @tb order by newid()
-----------
你先看看这段代码吧,是在字符串中的一个随机数,否则还写这么多代码干吗
你把开始2句去掉
select @str = vals from @temptb where id = 1
这个查询换成从你数据库查询