Bạn nên buộc công cụ cơ sở dữ liệu đánh giá giá trị mới cho mỗi hàng. Bạn có thể làm điều này bằng cách thêm mệnh đề where dummy trên bảng bên ngoài như:
DECLARE @city TABLE(ID INT IDENTITY(1, 1), City VARCHAR(100))
INSERT INTO @city VALUES
('Dallas'),
('New York'),
('Washington'),
('Las Vegas')
DECLARE @random TABLE(ID INT IDENTITY(1, 1), City VARCHAR(100))
INSERT INTO @random VALUES
('Manchester'),
('London'),
('Oxford'),
('Liverpool')
SELECT * FROM @city c
CROSS APPLY(SELECT TOP 1 * FROM @random r WHERE c.ID = c.ID ORDER BY NEWID()) ca
nếu bạn xóa WHERE c.ID = c.ID
bạn sẽ nhận được cùng một giá trị cho tất cả các hàng.