use*_*553 3 sql sql-server sql-server-2008
我有5个随机名字,分别是男性和女性.我需要根据性别插入随机名称.但是我们如何从SQL中的一组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)