日期:2014-05-17  浏览次数:20434 次

一段SQL的写法,求方法!
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 *,
       ROW_NUMBER() over(order by getdate()) as rownum
from k11
)
 
select tt.files1,tt.files2,tt.files3,tt.files4,t.UserId
from tt
left join t
        on tt.rownum = t.rownum

上面你给我的方法可以load出来,显示结果如下
files1  files2  files3  files4  UserId
A1        BB     CC       DD     ming
A2        EE     TT       YY     ling
A3        MM     GG       UU     Ting
A4        XX     XX       XX     null
A5        XX     XX       XX     null
A6        XX     XX       XX     null
A7        XX     XX       XX     null
A8        XX     XX       XX     null
A9        XX     XX       XX     null