Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

RAND() Contoh di SQL Server

Di SQL Server, T-SQL RAND() fungsi memungkinkan Anda untuk menghasilkan nomor acak. Secara khusus, ini mengembalikan nilai float pseudo-acak dari 0 hingga 1, eksklusif.

Fungsi menerima argumen opsional yang menyediakan nilai benih. Untuk nilai benih apa pun, hasilnya akan selalu sama.

Sintaks

Sintaksnya seperti ini:

RAND ( [ seed ] ) 

Dimana benih adalah ekspresi integer (tinyint, smallint, atau int) yang memberikan nilai seed. Jika argumen ini tidak disediakan, maka SQL Server memberikan seed secara acak.

Contoh 1 – Tidak Ada Argumen

Berikut adalah contoh dasar untuk menunjukkan apa yang terjadi ketika kami tidak memberikan argumen.

SELECT RAND() Result;

Hasil:

+--------------------+
| Result             |
|--------------------|
| 0.0354675287734768 |
+--------------------+

Hasilnya tidak konstan – akan berbeda setiap kali Anda menjalankannya.

Berikut adalah contoh yang terjadi ketika kita menjalankan beberapa RAND() berfungsi bersama.

SELECT 
  RAND() 'Result 1',
  RAND() 'Result 2',
  RAND() 'Result 3';

Hasil:

+-------------------+------------------+--------------------+
| Result 1          | Result 2         | Result 3           |
|-------------------+------------------+--------------------|
| 0.999568268427369 | 0.40098746841349 | 0.0606836711764244 |
+-------------------+------------------+--------------------+

Contoh 2 – Menggunakan Nilai Benih

Seperti yang disebutkan, Anda dapat memberikan argumen untuk menentukan nilai benih. Ini memungkinkan Anda untuk memengaruhi keluaran fungsi.

SELECT RAND(8) Result;

Hasil:

+-------------------+
| Result            |
|-------------------|
| 0.713722424011731 |
+-------------------+

Dalam hal ini, fungsi akan mengembalikan nilai yang sama setiap kali jika nilai argumen yang sama diberikan. Ini ditunjukkan dalam contoh berikut:

SELECT 
  RAND(8) 'Result 1',
  RAND(8) 'Result 2',
  RAND(8) 'Result 3';

Hasil:

+-------------------+-------------------+-------------------+
| Result 1          | Result 2          | Result 3          |
|-------------------+-------------------+-------------------|
| 0.713722424011731 | 0.713722424011731 | 0.713722424011731 |
+-------------------+-------------------+-------------------+

Kami menjalankan fungsi tiga kali. Dan karena kami menggunakan benih yang sama setiap kali, hasilnya semua sama.

Contoh 3 – Menggunakan RAND() sebagai Bagian dari Ekspresi

Anda dapat menggunakan RAND() berfungsi sebagai bagian dari ekspresi.

SELECT RAND()*10 Result;

Hasil:

+------------------+
| Result           |
|------------------|
| 3.32720913214171 |
+------------------+

Contoh 4 – Membulatkan Hasil

Kami juga dapat menghapus bagian pecahan dengan menyarangkan fungsi di dalam fungsi seperti FLOOR() atau CEILING() .

SELECT CEILING(RAND()*10) Result;

Hasil:

+----------+
| Result   |
|----------|
| 3        |
+----------+

Contoh 5 – Mengembalikan Bilangan Bulat Acak Antara Dua Angka

Anda juga dapat menentukan bahwa angka acak harus berada di antara dua angka.

Berikut adalah contoh menghasilkan angka acak antara 5 dan 10 (inklusif).

SELECT FLOOR(RAND()*(10-5+1)+5) Result;

Hasil:

+----------+
| Result   |
|----------|
| 9        |
+----------+

Mari kita jalankan kode yang sama beberapa kali untuk melihat hasil yang bervariasi.

SELECT 
  FLOOR(RAND()*(10-5+1)+5) 'Result 1',
  FLOOR(RAND()*(10-5+1)+5) 'Result 2',
  FLOOR(RAND()*(10-5+1)+5) 'Result 3';

Hasil:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 10         | 7          | 6          |
+------------+------------+------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server SELECT di mana kolom mana pun berisi 'x'

  2. SQL Server - gabung dalam saat memperbarui

  3. SQRT() Contoh di SQL Server

  4. Cara menggunakan klausa Where dalam Select Statement di SQL Server - Tutorial SQL Server / TSQL Bagian 109

  5. Nilai kolom identitas tiba-tiba melompat ke 1001 di server sql