サンプル テーブルの場合:
ID courseId dishID
1 1 1
2 1 5
3 2 4
4 1 7
5 2 8
一意の courseId のランダムなお皿 ID で選択したくありません。だから私の結果は
ID courseId dishId
1 1 1
3 2 4
そして、他の random よりも再度実行すると:
ID courseId dishId
2 1 5
5 2 8
等...
Microsoft SQL 2008 を使用しています
例えば
SELECT * FROM Table
WHERE dishId IN
(SELECT MIN(dishId)
FROM Table
GROUP BY courseId
それは正しい結果を返しますが、dishIdは常に同じですが、dishIdがランダムな料理であることを望みます
または、最初に courseId = 1 で 1 つのテーブルから選択し、courseId 2 で再度選択して (両方の結果を newId() で並べ替え)、UNION を作成できますが、コースが 7 つある場合は、7 つの選択文を持ちたくありません。 .. UNION なしで同じ結果が得られることを願っています