select * from k11 有10條紀錄
files1 files2 files3 files4
AA BB CC DD
ZZ EE TT YY
NN MM GG UU
.
.
另外一个表User 有99条记录,现在要随机在User这个表里面随机选3条记录
select top 3 NewID() as random,[UserId] from [User]
random UserId
E81A4DBB ming
F31B3B6C ling
16574317 Ting
然后将User这个表上的UserId值结果平均分配到k11上面那个表上,最后結果顯示如下
files1 files2 files3 files4 UserId
AA BB CC DD ming
ZZ EE TT YY ling
NN MM GG UU Ting
.
.
.
.
求高手指点!!在线等~~
------解决方案--------------------
修改了一下,试试这个:
;with t
as
(
select [UserId],
ROW_NUMBER() over(order by newid()) as rownum
from [User]
),
tt
as
(
select *,
case when rownum1 %3 =0 then 3 else rownum1 %3 end as rownum
from
(
select *,
ROW_NUMBER() over(order by getdate()) as rownum1
from k11
)a
)
select tt.files1,tt.files2,tt.files3,tt.files4,t.UserId
from tt
left join t
on tt.rownum = t.rownum
and t.rownum <=3