RAND()
chỉ được thực thi một lần cho mỗi truy vấn.
Bạn có thể xác minh điều này bằng cách xem tập hợp kết quả.
Nếu bạn đang cố gắng nhận một đơn đặt hàng ngẫu nhiên, bạn nên sử dụng NEWID()
hoặc CHECKSUM(NEWID())
.
WITH T AS ( -- example using RAND()
SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, RAND()
FROM T;
WITH T AS ( -- example using just NEWID()
SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, NEWID()
FROM T;
WITH T AS ( -- example getting the CHECKSUM() of NEWID()
SELECT 'Me' Name UNION SELECT 'You' UNION SELECT 'Another'
)
SELECT Name, CHECKSUM(NEWID())
FROM T;