Editor yang membantu menambahkan 'Pilih' sebelum setiap pernyataan tetapi poin dari item ini adalah ia dapat menghasilkan kunci unik untuk setiap baris dalam pengembalian, bukan hanya satu item (Untuk itu saya akan menggunakan fungsi Rand()). Misalnya :Pilih 100 Rand () teratas,* dari tblExample
Akan mengembalikan nilai acak yang sama untuk semua 100 baris.
Sementara:Pilih top 100 ABS(CHECKSUM(NEWID()) % 10),* dari tblexample
Akan mengembalikan nilai acak yang berbeda antara 0 dan 9 pada setiap baris dalam pengembalian. Jadi, sementara pilihan memudahkan untuk menyalin dan menempel, Anda dapat menyalin logika ke dalam pernyataan pilih jika itu yang diperlukan.
Ini menghasilkan angka acak antara 0-9
SELECT ABS(CHECKSUM(NEWID()) % 10)
1 sampai 6
SELECT ABS(CHECKSUM(NEWID()) % 6) + 1
3 sampai 6
SELECT ABS(CHECKSUM(NEWID()) % 4) + 3
Dinamis (Berdasarkan Komentar Eilert Hjelmeseths, diperbarui untuk memperbaiki bug( + ke -))
SELECT ABS(CHECKSUM(NEWID()) % (@max - @min - 1)) + @min
Diperbarui berdasarkan komentar:
NEWID
menghasilkan string acak (untuk setiap baris sebagai balasannya)CHECKSUM
mengambil nilai string dan membuat angka- modulus (
%
) membagi dengan angka tersebut dan mengembalikan sisanya (artinya nilai maksimal adalah satu kurang dari angka yang Anda gunakan) ABS
mengubah hasil negatif menjadi positif- lalu tambahkan satu ke hasil untuk menghilangkan 0 hasil (untuk mensimulasikan lemparan dadu)