表t_person中有一列为Name,要求是将里面的名字随机组合
如原为 张三 李四 王五
现在通过使用存储过程将其修改为 张五 李三 王四(是随机产生的,如姓张的可以为组合为张三、张四、张五),但是姓不要改变
验证OK后再加100分
declare @t table(name varchar(20))
insert @t
select '张三'
union all
select '李四'
union all
select '王五'
select left(name,1)+(select top 1 right(name,len(name)-1) from @t where left(name,1)<=left(a.name,1) or left(name,1)>left(a.name,1) order by newid()) from @t a
必须要用SQL语句吗?
增加一字段,orderno,int型,
先计算一下记录条数count,再1-count之间,对每条记录的orderno进行赋值~
给一个思路,先取得一个随机数(select @top= convert(int,(RAND()*count(*)))+1 from t_person),再从t_person表里取得一个随机多的一些记录(select top(@top) * from t_person ),取记录id为最大值的那个name字段值 ,再把name字段值取左边一个字符(left(name,1)),更新到取到的记录的name字段取右边的几个字符(right(name,len(name)-1)) ,这样的结果就是随机组合的字串了。