SELECT RAND() AS rd;
rd |
------------------|
0.8186902226508435|
SELECT RAND() AS rd;
rd |
------------------|
0.7467745597058656|
SELECT RAND(1) AS rd;
rd |
------------------|
0.7135919932129235|
SELECT RAND(1) AS rd;
rd |
------------------|
0.7135919932129235|
low + RAND() * (high - low)
SELECT 10 + RAND() * 10 AS rd;
rd |
-----------------|
13.43443392823765|
SELECT FLOOR(10 + RAND() * 10) AS rd;
rd |
----|
17.0|
SELECT RIGHT(CONCAT('000000',FLOOR(RAND()* 1000000)),6) AS captcha;
captcha|
-------|
925656 |
SELECT (sqrt(-2 * log(rand())) * cos(2 * pi() * rand())) * @stdev + @mean;
SELECT (sqrt(-2 * log(rand())) * cos(2 * pi() * rand())) * 1 + 0 AS rd;
rd |
-------------------|
-0.4356079973405327|
CREATE TABLE #t(val float);
BEGIN
DECLARE @counter INT = 1
WHILE @counter <= 1000000
BEGIN
INSERT INTO #t
SELECT (sqrt(-2 * log(rand())) * cos(2 * pi() * rand())) * 1 + 0
SET @counter = @counter + 1
END
END;
SELECT avg(val) avg, stdev(val) stdev FROM #t;
avg |stdev |
------------------|------------------|
0.0009166176910995|1.0014773595001807|
SELECT CHAR(RAND() * 26 + 65) ch;
ch|
--|
D |
CREATE VIEW v_rand
AS
SELECT RAND() AS val;
CREATE OR ALTER FUNCTION rand_num(@n INT)
RETURNS INT
AS BEGIN
SELECT @n=@n * val FROM v_rand
RETURN @n
END;
CREATE OR ALTER FUNCTION random_string(
@num INT,
@chars VARCHAR(1024) = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
) RETURNS VARCHAR(1024)
AS
BEGIN
DECLARE @res_str VARCHAR(1024) = ''
DECLARE @i INT=0
WHILE(@i<@num)BEGIN
SET @res_str = @res_str + SUBSTRING(@chars, FLOOR(dbo.rand_num(len(@chars))) + 1, 1)
SET @i = @i + 1
END
RETURN @res_str
END;
SELECT dbo.random_string(10,DEFAULT) AS rs;
rs |
----------|
3CBFEPKYTd|
SELECT random_string(6, '0123456789');
random_string|
-------------|
082661 |
SELECT dbo.random_string(10 + rand() * 11, DEFAULT) AS rs;
rs |
---------------|
5ikNBTJLj1vKUKz|
SELECT DATEADD(DAY, rand() * 15, CAST(GETDATE()AS date)) AS rand_date;
rand_date |
----------|
2020-12-18|
SELECT CAST(DATEADD(SECOND, rand() * 86400, GETDATE()) AS TIME) AS rand_time;
rand_time|
---------|
14:14:10|
SELECT NEWID() AS uuid;
uuid |
------------------------------------|
88E68504-7384-4AB8-A796-D13A8528AC21|
SELECT REPLACE(NEWID(),'-','') AS uuid;
uuid |
--------------------------------|
037C73E57F084E33AE026C949454AFF9|
SELECT RAND() AS rd FROM employee;
rd |
------------------|
0.9915256467818716|
0.9915256467818716|
0.9915256467818716|
...
SELECT TOP(5) emp_id, emp_name
FROM employee
ORDER BY NEWID();
emp_id|emp_name|
------|--------|
18|法正 |
8|孙丫鬟 |
24|简雍 |
2|关羽 |
7|孙尚香 |
原文作者:SQL编程思想;如有侵权,请联系管理员删除。