Microsoft SQL Server 2008 R2 için T-SQL kullanarak bir sorgudaki bir sütuna rastgele bir değer eklemek istiyorum. Bunu yapmak için bir alt sorgu kullanırım ve rasgele bir kayıt çekerim. Her sorguyu çalıştırdığımda, yeni bir rasgele kayıt çeker, ancak her satırın değeri aynıdır.Rastgele değeri almak için alt sorguyu kullanmak her seferinde aynı değeri gösterir
Her satır için yeni bir rasgele değer nasıl alabilirim?
Örnek sorgu:
column1
value1
value2
value3
Her zaman Sütun2 için aynı değeri döndürür gibi table2 görünüyor Oysa
SELECT column1,
(SELECT TOP 1 column1 as c2 FROM Table2 ORDER BY NewID())
FROM Table1
yerine her tablo için yeni bir rastgele kaydının.
İlk çalıştırma:
column1, c2
1, value1
2, value1
3, value1
İkinci çalışma:
column1, c2
1, value2
2, value2
3, value2
nasıl c2 (alt sorgu) her satır için yeni bir rastgele kayıt çekmek için alabilirim?
İdeal senaryo:
column1, c2
1, value2
2, value1
3, value2
SQL Server'ın ilişkili olduğunu düşündüğü için dış sorguya başvurmanız gerekebilir. Ancak bu oldukça etkisiz olacaktır. Buradaki gereksinim nedir? –
SQL Server 2010 Nedir? –
Teşekkürler @PeterSchofield, 2008 r2'yi kastettim. – Lucas