sqlrand函數
『壹』 sql 隨機數
select cast(rand() * 30 as int),cast(rand() * 30 as int),cast(rand() * 30 as int),cast(rand() * 30 as int),
cast(rand() * 30 as int),cast(rand() * 30 as int),cast(rand() * 30 as int)
考慮到你可能需要不重復的,用如下方法比較好
declare @tb table(val int)
declare @i int
set @i = 1
while @i <= 30
begin
insert into @tb(val) values(@i)
set @i = @i + 1
end
select top 7 * from @tb order by newid()
『貳』 sql中的隨機函數怎麼用
sql server的rand()函數:返回0到1之間的隨機浮點值
round()函數:返回數值表達式,舍入到指定長度或精度。
例如隨機取得0~99之間的數: round(rand()*100,0)
隨機取得100~199之間的數:round(rand()*100+100,0)
『叄』 rand在SQL中的用法
在查詢分析器中執行:select rand(),可以看到結果會是類似於這樣的隨機小數:0.776282033621286,像這樣的小數在實際應用中用得不多。
一般要取隨機數都會取隨機整數。
那就看下面的兩種隨機取整數的方法:
1、 方法一
A:select floor(rand()*N) ---生成的數是這樣的:12.0
B:select cast( floor(rand()*N) as int) ---生成的數是這樣的:12
2、 方法二
A:select ceiling(rand() * N) ---生成的數是這樣的:12.0
B:select cast(ceiling(rand() * N) as int) ---生成的數是這樣的:12
『肆』 在線求SQL server使用rand()函數 隨機出四位數
1、挺簡單的嗎 不用Rand 用newid() 如:
select left( newid(),4)
(1 行受影響)
1F5D
2、如果你非要用Rand()的話 如:
select char(rand()*10+48)+char(rand()*26+65)+char(rand()*10+48)+char(rand()*26+65)
(1 行受影響)
2R6U
不過這個隨機數的子母和數字的位置是固定的數字+字母+數字+字母
『伍』 SQL產生隨機數
下文將為您介紹SQL中的隨機函數rand(),供您參考,如果您是才接觸SQL Server的新手,不妨一看,相信對您學習SQL中的函數會大有幫助。
在SQL Server中,有個隨機函數rand(),有不少新手可能不知道存在這個函數,現在我就把這個函數的一些隨機數生成技巧寫出來,這是面向菜鳥的,老鳥請不要拍磚呀,我的頭還不夠硬
不過還是希望老鳥們多多指教了,現在切入正題:
隨機函數:rand()
在查詢分析器中執行:select rand(),可以看到結果會是類似於這樣的隨機小數:0.36361513486289558,
像這樣的小數在實際應用中用得不多,一般要取隨機數都會取隨機整數。那就看下面的兩種隨機取整數的方法:
1、
A:
select floor(rand()*N) ---生成的數是這樣的:12.0
B:
select cast( floor(rand()*N) as int) ---生成的數是這樣的:12
2、
A:select ceiling(rand() * N) ---生成的數是這樣的:12.0
B:select cast(ceiling(rand() * N) as int) ---生成的數是這樣的:12
其中裡面的N是一個你指定的整數,如100,可以看出,兩種方法的A方法是帶有.0這個的小數的,而B方法就是真正的整數了。
大致一看,這兩種方法沒什麼區別,真的沒區別?其實是有一點的,那就是他們的生成隨機數的范圍:
方法1的數字范圍:0至N-1之間,如cast( floor(rand()*100) as int)就會生成0至99之間任一整數
方法2的數字范圍:1至N之間,如cast(ceiling(rand() * 100) as int)就會生成1至100之間任一整數
對於這個區別,看SQL的聯機幫助就知了:
------------------------------------------------------------------------------------
比較 CEILING 和 FLOOR
CEILING 函數返回大於或等於所給數字表達式的最小整數。FLOOR 函數返回小於或等於所給數字表達式的最大整數。例如,對於數字表達式 12.9273,CEILING 將返回 13,FLOOR 將返回 12。FLOOR 和 CEILING 返回值的數據類型都與輸入的數字表達式的數據類型相同。
----------------------------------------------------------------------------------
現在,各位就可以根據自己需要使用這兩種方法來取得隨機數了^_^
另外,還要提示一下各位菜鳥,關於隨機取得表中任意N條記錄的方法,很簡單,就用newid():
select top N * from table_name order by newid() ----N是一個你指定的整數,表是取得記錄的條數 。
『陸』 怎樣使用sql的rand函數從select語句返回的數據集中選擇其中一個數
Select TOP 1 orderID, NewID() as Random FROM orders orDER BY Random 關鍵在於NewID()這個函數,他生成一個隨機數。 隨機提取1條記錄的例子: SQL Server:Select Top 1 * From 表 order By NewID() Access:Select Top 1 * From 表 order By Rnd(ID) Rnd(ID) 其中的ID是自動編號欄位,可以利用其他任何數值來完成,比如用姓名欄位(UserName) Select Top 1 * From 表 order BY Rnd(Len(UserName)) MySql:Select * From 表 order By Rand() Limit 1
『柒』 sql server 中 Rand()如何截取 0-9的int數值
取出來的值用floor()函數處理一下
『捌』 關於Sql的rand()函數效率
想把表中的所有的數據都檢索出來?
select * from 表名?
不會是這個需求吧 ,我再仔細讀讀題目
隨機查詢,大部分都是用的rand函數
哦 你是想在表中所有數據隨機抽取是嗎?
select top 10 * from 表 order by newid()
SQL資料庫有個newid函數,可以很方便的用SQL語句得到表中的隨機數據
不知道能不能幫助你
『玖』 sql server中利用RAND()函數產生一個隨機卡號
IF EXISTS(SELECT * FROM sysobjects WHERE name='proc_CardID')
DROP PROCEDURE proc_CardID
GO
CREATE PROCEDURE proc_CardID
@randCardID varchar(19) OUTPUT, --輸出參數
@firstNo varchar(10)='1010 3576 ' --輸入參數,有默認值
AS
DECLARE @r numeric(15,8) --15位數,保留8位小數
DECLARE @tempStr char(10)
select @r=RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE()))
SET @tempStr=@r
SET @randCardID=@firstNo+SUBSTRING(@tempStr,3,4)+' '+SUBSTRING(@tempStr,7,4)
GO
--測試
DECLARE @mycardID char(19)
EXECUTE proc_CardID @mycardID OUTPUT
print '產生的隨機卡號為:'+@mycardID
我用的是存儲過程;關鍵代碼就是RAND((DATEPART(mm,GETDATE())*100000)+(DATEPART(ss,GETDATE())*1000)+DATEPART(ms,GETDATE()))
其他的代碼都是修飾
我們學SQL就做的這個,你也在學》》?呵呵
『拾』 SQL語句中怎麼加入不是SQL內部函數的rand隨機函數
一個五位的隨機 數:你看合不合要求:
select round(rand()*100000,0)