在sql中生成随机名称

use*_*553 3 sql sql-server sql-server-2008

我有5个随机名字,分别是男性和女性.我需要根据性别插入随机名称.但是我们如何从SQL中的一组5个名称中随机插入名称.可能吗?

Md.*_*lam 10

select name from table order by newid()
Run Code Online (Sandbox Code Playgroud)


Bil*_*egg 5

创建一个包含名称和整数 ID 的表。然后使用带有 % 5 的 RAND() 来降低 0 和 4 之间的值。如果你想要一个男性,加 1,如果你想要一个女性,加 6。像这样:

Create table RandomNames
(id int,
 name varchar(100),
 gender char(1)
)

insert into RandomNames
(id, name,gender)
select 1,'Bill','M'
union
select 2,'John','M'
union
select 3,'Steve','M'
union
select 4,'Mike','M'
union
select 5,'Phil','M'
union
select 6,'Sarah','F'
union
select 7,'Ann','F'
union
select 8,'Marie','F'
union
select 9,'Liz','F'
union
select 10,'Stephanie','F'

declare @wantedGender char(1)

select @wantedGender = 'M'

select name 
from RandomNames
where id =  (CAST(RAND()*100 as int) % 5) + case when @wantedGender = 'M' then 1 else 6 end 
Run Code Online (Sandbox Code Playgroud)


小智 1

将男性的 5 个随机名称存储在一个表中,将女性的 5 个随机名称存储在另一表中。选择 1 到 5 之间的随机整数,并使用内连接交叉引用男性或女性表。