我需要从相关子查询中获取MyRandom列。
select V_Main.vendorName, myRandom from Vendors V_Main
WHERE 0 <
(SELECT RAND() as myRandom FROM Vendors V_Sub WHERE V_Main.VendorID = V_Sub.vendorID)
答案 0 :(得分:1)
你不能。您可以使用join
或apply
:
select V_Main.vendorName, myRandom
from Vendors V_Main cross apply
(SELECT RAND() as myRandom
FROM Vendors V_Sub
WHERE V_Main.VendorID = V_Sub.vendorID
) r
WHERE 0 < r.myRandom;
这似乎是非常奇怪的逻辑。每个查询只执行一次rand()
,它应该始终为正数。所以,代码永远不会做任何事情。
如果你想要一个随机数,那么rand(checksum(newid()))
之类的东西就是一种方法。