當前位置:首頁 » 編程語言 » sql中rand函數使用方法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中rand函數使用方法

發布時間: 2022-06-11 08:45:00

1. 如何用sql語句實現某個欄位數為隨機數

以某整數欄位為種子(沒有的話要生成一個),通過RAND函數生成一個0-1之間的隨機數。如0.7136106261841817,然後轉換成文本型,再取後7位即RIGHT(CONVERT(VARCHAR,RAND(序號)),7) 。

2. 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就做的這個,你也在學》》?呵呵

3. 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

4. sql rand()

rand(datepart(ms,getdate())*1000)
datepart(ms,getdate())表示取當前時間的毫秒數
datepart(ms,getdate())*1000表示乘以1000
rand()表示以上面的數字得出一個隨機數。
在單個查詢中反復調用 RAND() 將產生相同的值,所以rand([seed]),你每次要修改種子seed的才能得出不一樣的隨機數。
浮點數是指帶小數的,5.0也是浮點數,可其實沒有小數。

5. 如何在SQL里生成隨機數

從 RAND 生成隨機數的常用方法是,用相對可變的某個值作為種子值,例如將 GETDATE 的幾個部分累加:

SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )

6. 怎樣使用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

7. 在sql2000中隨機產生100,200,300,400,500這五個隨機數 rand這個函數怎麼用

select cast(ceiling(rand() * 5)*100 as int)

8. sql中的隨機函數怎麼用

sql server的rand()函數:返回0到1之間的隨機浮點值
round()函數:返回數值表達式,舍入到指定長度或精度。
例如隨機取得0~99之間的數: round(rand()*100,0)
隨機取得100~199之間的數:round(rand()*100+100,0)

9. 在SQL中怎麼樣獲取隨機數

1、隨機小數 select rand(),

10. SQL語言隨機生成字元串的幾種方法

1.利用newid()產生的uniqueidentifier都是隨機且唯一的:declare @string nvarchar(100);set @string =cast(newid() as nvarchar(100));select @string;go2.利用rand()生成隨機數字串:declare @string nvarchar(100);set @string = right(str(rand(),8,6),2);select @string;go3.利用rand()生成6位隨機字元串:declare @sql nvarchar(400) select @sql= 'select char( '+cONVERT(NVARCHAR,CONVERT(INT,26*rand())+97)+ ')+ CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ')+ CHAR( '+CONVERT(NVARCHAR,CONVERT(INT,rand()*26)+97)+ ') ' print @sql EXEC(@sql) goDECLARE @Below int DECLARE @Up int SELECT @Below=65,@Up=90 SELECT CHAR(CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))) +CHAR(CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))) +CHAR(CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))) +CHAR(CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))) +CHAR(CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))) +CHAR(CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))) goSELECT CHAR(CONVERT(INT,rand()*26)+(CASE WHEN RAND()*2 > 1 THEN 97 ELSE 65 END))+ CHAR(CONVERT(INT,rand()*26)+(CASE WHEN RAND()*2 > 1 THEN 97 ELSE 65 END))+ CHAR(CONVERT(INT,rand()*26)+(CASE WHEN RAND()*2 > 1 THEN 97 ELSE 65 END))+ CHAR(CONVERT(INT,rand()*26)+(CASE WHEN RAND()*2 > 1 THEN 97 ELSE 65 END))+ CHAR(CONVERT(INT,rand()*26)+(CASE WHEN RAND()*2 > 1 THEN 97 ELSE 65 END))+ CHAR(CONVERT(INT,rand()*26)+(CASE WHEN RAND()*2 > 1 THEN 97 ELSE 65 END)) go4.編寫可以產生隨機字元串的存儲過程:--*********************CREATE VIEW V_RAND AS SELECT RAND1 = CONVERT(INT,RAND()*26),RAND2 = RAND()*2 GO CREATE FUNCTION DBO.f_GetRandNum(@LEN INT,@FLAG INT) RETURNS NVARCHAR(100) AS --@LEN 輸出字元的長度 --@FLAG 返回值包含字元 1:大寫字母 2:小寫字母 3:大小寫字母混合 BEGIN DECLARE @SQL NVARCHAR(100),@RAND INT SELECT @SQL = ' ' IF @LEN>100 SET @LEN = 100 WHILE @LEN>0 BEGIN SELECT @RAND = RAND1 +(CASE @FLAG WHEN 1 THEN 65 WHEN 2 THEN 97 ELSE(CASE WHEN RAND2 > 1 THEN 97 ELSE 65 END) END) FROM V_RAND SELECT @SQL=@SQL + CHAR(@RAND),@LEN = @LEN - 1 END RETURN @SQL END GO --調用存儲過程 SELECT DBO.f_GetRandNum(7,2) (收集自:CSDN社區)