Quiero agregar un valor aleatorio a una columna en una consulta utilizando T-SQL para Microsoft SQL Server 2008 R2. Para hacer esto, utilizo una subconsulta y retiro un registro aleatorio. Cada vez que ejecuto la consulta, extrae un nuevo registro aleatorio, pero el valor de cada fila es idéntico.El uso de subconsulta para extraer el valor aleatorio revela el mismo valor cada vez
¿Cómo puedo obtener un nuevo valor aleatorio para cada fila?
Consulta de ejemplo:
SELECT column1,
(SELECT TOP 1 column1 as c2 FROM Table2 ORDER BY NewID())
FROM Table1
Mientras miradas Tabla2 como
column1
value1
value2
value3
Siempre devuelve el mismo valor para columna2, en lugar de un nuevo registro aleatorio para cada tabla.
Primera carrera:
column1, c2
1, value1
2, value1
3, value1
segunda pasada:
column1, c2
1, value2
2, value2
3, value2
¿Cómo puedo obtener c2 (la subconsulta) para tirar de un nuevo registro aleatorio para cada fila?
escenario ideal:
column1, c2
1, value2
2, value1
3, value2
Probablemente necesite hacer referencia a la consulta externa para que SQL Server considere que está correlacionada. Sin embargo, esto será bastante ineficiente. ¿Cuál es el requisito aquí? –
¿Qué es SQL Server 2010? –
Gracias @PeterSchofield, quise decir 2008 r2. – Lucas