SQL Server 2008 を使用しています。ランダムな行レコードを選択したいのですが、レコードの総数は別のテーブルの列の値に依存します。これを行う方法を教えてください。
私のSQL文はこのようなものですが、間違っています..
select top b.number a.name, a.link_id
from A a
left join B b on b.link_id = a.link_id
order by newid()
これが私のテーブルと期待される結果です。
表A:
name link_id
james 100
albert 100
susan 100
simon 101
tom 101
fion 101
表 B :
link_id number
100 2
101 1
期待される結果:
初めて実行すると、結果は次のようになります。
name link_id james 100 susan 100 fion 101
2 回目の結果は次のようになります。
albert 100 susan 100 simon 101
3 回目は次のようになります。
james 100 albert 100 fion 101
説明
表 B 参照、link_id: 100、数値: 2
テーブルAが2つのランダムレコードを選択する必要があることを意味しますlink_id = 100
1 つのランダムなレコードを選択する必要がありますlink_id=101