便利な編集者が各ステートメントの前に「Select」を追加しましたが、このアイテムのポイントは、1つのアイテムだけでなく、リターンの各行に一意のキーを生成できることです(そのためにRand()関数を使用します)。 :tblExampleから上位100ランド()*を選択
100行すべてに対して同じランダム値を返します。
一方:tblexampleから上位100のABS(CHECKSUM(NEWID())%10)*を選択します
戻り値の各行で0から9までの異なるランダム値を返します。したがって、selectを使用するとコピーと貼り付けが簡単になりますが、必要に応じてロジックをselectステートメントにコピーできます。
これにより、0〜9の乱数が生成されます
SELECT ABS(CHECKSUM(NEWID()) % 10)
1から6
SELECT ABS(CHECKSUM(NEWID()) % 6) + 1
3から6
SELECT ABS(CHECKSUM(NEWID()) % 4) + 3
動的(Eilert Hjelmesethsコメントに基づく、バグを修正するために更新(+から-))
SELECT ABS(CHECKSUM(NEWID()) % (@max - @min - 1)) + @min
コメントに基づいて更新:
-
NEWID
ランダムな文字列を生成します(返される行ごとに) CHECKSUM
文字列の値を取り、数値を作成します- モジュラス(
%
)その数で割り、余りを返します(つまり、最大値は使用する数より1少ない) -
ABS
ネガティブな結果をポジティブに変更します - 次に、結果に1を追加して、0の結果を削除します(サイコロの目をシミュレートするため)