good_good_study 发表于 2007-12-15 18:08

用户名是随机长度的随机字符串出现

Declare @TempInt int
Set @TempInt=1
While @TempInt<100
Begin
insert into changying(userName)values('abcd')
Set @TempInt=@TempInt+1
End
go
我现在要把“abcd”变成一个随机的字符串
帮一下忙啊

purana 发表于 2007-12-15 19:06

declare @t table(userName varchar(100))

Declare @TempInt int,@value varchar(100)
Set @TempInt=1

While @TempInt<100
Begin
    set @value=char(cast(rand()*26 as int)%26+97)
    insert into @t (userName) values(@value)
    Set @TempInt=@TempInt+1
End

select * from @t

--随机长度的..自己去考虑.

orliubc 发表于 2007-12-16 19:31

cast(rand()*26 as int)%26+97

这是怎么运算的,想不开哎

orliubc 发表于 2007-12-18 12:37

cast(rand()*100 as int)%30

purana在吗?  麻烦你帮我解释下上面句子的返回值啊,%30 是怎么算的?
急啊!! 谢谢啊

关小彤 发表于 2007-12-25 09:29

char(cast(rand()*26 as int)%26+97)
我是这样理解的:)
因为有26个字母,所以和26有关
(rand()*26 as int )%26产生一个从0-26的随机整数,因为a的ASCII码是97,所以要加上97。

就能够得到你想要的

[[italic] 本帖最后由 关小彤 于 2007-12-25 09:31 编辑 [/italic]]

页: [1]

编程论坛