sql >> Database >  >> RDS >> Sqlserver

Tabel bijwerken met willekeurige velden

U moet de database-engine dwingen om voor elke rij een nieuwe waarde te evalueren. U kunt dit doen door een dummy-waar-clausule toe te voegen aan de buitenste tabel, zoals:

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

als je WHERE c.ID = c.ID . verwijdert je krijgt dezelfde waarde voor alle rijen.




  1. Omzetten tussen clausule naar joins

  2. uitvoer van twee verschillende query's als één resultaat in Oracle SQL

  3. Een csv-uitvoerbestand maken van een opgeslagen procedure in SQL Server

  4. mysql-groepering terwijl een waarde in een bereik ligt