SQL生成隨機數

一、SQL生成隨機數組

有時候我們需要生成一個隨機數組,SQL可以通過RAND()函數來實現,代碼如下:

SELECT RAND(), RAND(), RAND(), RAND(), RAND();

運行結果如下:

+-------------------+-------------------+-------------------+-------------------+-------------------+
| (No column name)  | (No column name)  | (No column name)  | (No column name)  | (No column name)  |
+-------------------+-------------------+-------------------+-------------------+-------------------+
| 0.732931303303814 | 0.74820671508723   | 0.105758390980154 | 0.252249759248054 | 0.716748049206193 |
+-------------------+-------------------+-------------------+-------------------+-------------------+

使用RAND()函數可以生成隨機數,可以通過調節函數參數的值來改變數組的長度。

二、SQL生成隨機數函數

SQL中使用NEWID()函數可以隨機生成唯一標識符GUID,代碼如下:

SELECT NEWID();

運行結果如下:

+------------------------------------+
| (No column name)                   |
+------------------------------------+
| 56931D8B-D8B9-4E12-A5F5-72A5F9A4808C |
+------------------------------------+

此外,SQL還可以使用CHECKSUM(NEWID())+RAND()函數來生成更加隨機的數,代碼如下:

SELECT CHECKSUM(NEWID())+RAND();

運行結果如下:

+-------------------+
| (No column name)  |
+-------------------+
| 819817.2271732586 |
+-------------------+

三、SQL Server生成隨機數

SQL Server也可以通過RAND()函數來生成隨機數,代碼如下:

SELECT TOP 5 RAND() FROM sys.objects

運行結果如下:

+-------------------+
| (No column name)  |
+-------------------+
| 0.328835954798927 |
| 0.81008264599312  |
| 0.168698469141455 |
| 0.819490681617023 |
| 0.854878276886284 |
+-------------------+

四、SQL生成隨機數主鍵

當我們需要為表生成主鍵時,可以使用如下代碼,用HASHBYTES()函數生成一個唯一的哈希值:

ABS(CAST(
    HASHBYTES('MD5', CAST(NEWID() AS varchar(36))) AS BIGINT))
    % POWER(10, 9) AS RandomNumber

上述代碼中,CAST(NEWID() AS varchar(36))為將NEWID()函數生成的唯一標識符轉為字元串,HASHBYTES(‘MD5’, CAST(NEWID() AS varchar(36)))使用哈希演算法MD5計算字元串的哈希值,最後CAST函數將哈希值轉為BIGINT類型,用來保存數據。運行結果如下:

+-------------+
| RandomNumber |
+-------------+
|   814962981 |
|   997601035 |
|    48135846 |
|   669021128 |
|   625812846 |
+-------------+

五、SQL生成隨機數字

如果我們需要生成指定位數的隨機數字,可以使用如下代碼:

SELECT LEFT(CAST(RAND() AS varchar(20)), @DigitCount) AS RandomNumber

其中@DigitCount為指定的數字位數。運行結果如下:

+----------------+
|  RandomNumber  |
+----------------+
| 0.327442537481 |
+----------------+

六、SQL生成隨機數函數sys.fn_RandomBytes

SQL還提供了內置的函數sys.fn_RandomBytes,用於生成隨機位元組序列。代碼如下:

SELECT sys.fn_RandomBytes(8)

運行結果如下:

+------+
|      |
+------+
| 0xEC |
| 0xCB |
| 0x51 |
| 0x1F |
| 0x43 |
| 0x75 |
| 0xC2 |
| 0x3D |
+------+

七、SQL語句生成隨機數

使用如下代碼可以生成指定範圍內的隨機數:

SELECT RAND() * (@MaxValue - @MinValue) + @MinValue AS RandomNumber

其中@MaxValue和@MinValue為指定的隨機數範圍。運行結果如下:

+--------------+
| RandomNumber |
+--------------+
|  0.845346204 |
+--------------+

八、SQL語句生成32位隨機數

SQL語句生成32位隨機數代碼如下:

SELECT UPPER(CONVERT(char(8), NEWID(), 1) + REPLACE(CONVERT(char(23), NEWID(), 1), '-', '')) AS RandomNumber

運行結果如下:

+----------------------------------+
|          RandomNumber             |
+----------------------------------+
| 850A80CF791D476C9DFCC423F8D7C57E |
+----------------------------------+

九、SQL隨機數

使用如下代碼可以生成0到1之間的隨機數:

SELECT CAST(CRYPT_GEN_RANDOM(1) AS INT) % 100 AS RandomNumber

運行結果如下:

+--------------+
| RandomNumber |
+--------------+
|           80 |
+--------------+

結論

SQL中有多種方式可以生成隨機數,我們可以根據具體的需求選擇適合的方法。其中RAND()函數是最常用的方法之一,可以生成較高質量的隨機數,而NEWID()函數則可以生成唯一的標識符,適用於主鍵生成等場景。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/199150.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-04 19:14
下一篇 2024-12-04 19:14

相關推薦

  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Hibernate日誌列印sql參數

    本文將從多個方面介紹如何在Hibernate中列印SQL參數。Hibernate作為一種ORM框架,可以通過列印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • 如何使用random生成不重複的隨機數

    在編程開發中,我們經常需要使用隨機數來模擬一些場景或生成一些數據。但是如果隨機數重複,就會造成數據的不準確性。這時我們就需要使用random庫來生成不重複且隨機的數值。下面將從幾個…

    編程 2025-04-29
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是資料庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一種非常流行的ORM框架,提供了SQL映射配置文件,可以使用類似於傳統SQL語言的方式編寫SQL語句。其中,SQL的Limit語法是一個非常重要的知識點,能夠實現分…

    編程 2025-04-29
  • Python生成隨機數的多種方法

    本文將從以下幾個方面詳細介紹如何使用Python生成隨機數。 一、random模塊的使用 Python內置的random模塊能夠生成偽隨機數,使用該模塊,可以生成隨機數、隨機整數等…

    編程 2025-04-29
  • Python隨機數生成器

    Python隨機數生成器是一個常用的工具,它可以生成各種類型的隨機數,包括整數、浮點數和字元串等,廣泛用於模擬、遊戲、加密、測試等多個領域。本文將從多個方面對Python隨機數生成…

    編程 2025-04-28
  • SQL預研

    SQL預研是指在進行SQL相關操作前,通過數據分析和理解,確定操作的方法和步驟,從而避免不必要的錯誤和問題。以下從多個角度進行詳細闡述。 一、數據分析 數據分析是SQL預研的第一步…

    編程 2025-04-28
  • Python生成1~100隨機數(代碼示例)

    本文將詳細闡述Python生成1~100隨機數,包括其定義、應用場景、實現方法等,幫助讀者更好的掌握該技能。 一、定義 隨機數是指在一定範圍內任選的數值,能夠在一定程度上保證數據的…

    編程 2025-04-27
  • 如何使用Python生成不重複的隨機數?

    要在Python中生成不重複的隨機數,我們可以使用random模塊中的sample函數,該函數可以從指定序列中隨機選擇指定數量的獨立元素。 一、生成指定範圍的隨機數 如果要生成指定…

    編程 2025-04-27

發表回復

登錄後才能評論