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

Cara menghasilkan data acak di SQL server

Tidak terlalu sulit untuk menghasilkan data acak, bahkan dalam SQL

Misalnya, untuk mendapatkan nama pengguna acak dari tabel profil pengguna Anda.

BEGIN
-- get a random row from a table
DECLARE @username VARCHAR(50)
SELECT @username = [Username] FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY [Username]) [row], [Username]
    FROM [UserProfile]
) t 
WHERE t.row = 1 + (SELECT CAST(RAND() * COUNT(*) as INT) FROM [UserProfile])

print(@username)
END

Untuk menghasilkan bilangan bulat acak...

BEGIN
-- get a random integer between 3 and 7 (3 + 5 - 1)
DECLARE @totalviews INT
SELECT @totalviews = CAST(RAND() * 5 + 3 as INT)
print(@totalviews)
END

Untuk menghasilkan string varchar acak

BEGIN
-- get a random varchar ascii char 32 to 128
DECLARE @videoname VARCHAR(160)
DECLARE @length INT
SELECT @videoname = ''
SET @length = CAST(RAND() * 160 as INT)
WHILE @length <> 0
    BEGIN
    SELECT @videoname = @videoname + CHAR(CAST(RAND() * 96 + 32 as INT))
    SET @length = @length - 1
    END
print(@videoname)
END

Dan akhirnya, kencan acak

BEGIN
-- get a random datetime +/- 365 days
DECLARE @uploadtime DATETIME
SET @uploadtime = GETDATE() + (365 * 2 * RAND() - 365)
print(@uploadtime)
END


  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 Internal:Operator Bermasalah Pt. II – Hashing

  2. Konversikan Int ke bidang tanggal

  3. Bagaimana Mengidentifikasi duplikasi kunci utama dari kode kesalahan SQL Server 2008?

  4. Cara Menghubungkan ke Beberapa Server SQL dalam Satu Klik (Grup Server Terdaftar) - Tutorial SQL Server / TSQL Bagian 5

  5. Bagaimana membandingkan tanggal di SQL Server