检索数据_12_从表中随机返回N条记录
生活随笔
收集整理的這篇文章主要介紹了
检索数据_12_从表中随机返回N条记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?從表中隨機返回N條記錄
?
需求描述
需求:從雇員表emp里隨機查詢5條雇員的名稱和工資信息。
解決方法:使用數據庫里內置的限制行數函數結合隨機函數來解決。
注: 數據庫數據集SQL腳本詳見如下鏈接地址
員工表結構和數據初始化SQL腳本
SQL代碼
--Mysql: SELECT ename,sal FROM emp order by rand() limit 5;-- Sql server: SELECT TOP 5 ename,sal FROM emp ORDER BY NEWID()注: newid是SQL Server里的內置函數,因為newid()返回的是uniqueidentifier類型的唯一值,而且每次生成的值都不一樣,所以能達到隨機的效果。
執行結果
?
-- Oracle: SELECT * FROM (SELECT ename,sal FROM empORDER BY Dbms_Random.value() ) WHERE rownum <=5注: dbms_random是一個可以生成隨機數值或者字符串的程序包。這個包有initialize()、seed()、terminate()、value()、normal()、random()、string()等幾個函數,但返回隨機值的函數value()是最常用的。
你可以直接訪問這個隨機數字的函數,它返回個0到1之間的一個小數。
SELECT Dbms_Random.value() AS RAND_VALUE FROM DUAL;執行結果
如果想生成1-100之間的隨機數,你可以這么做:
SELECT TRUNC(Dbms_Random.value()*100) AS RAND_VALUE FROM DUAL;執行結果
總結
以上是生活随笔為你收集整理的检索数据_12_从表中随机返回N条记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么时间吃比较好,一天吃几次?
- 下一篇: 检索数据_13_从表中查询空值