我需要在表中按性别更新具有 2 个不同值但在 1 个查询中的列(只有一个更新)。我有一张桌子,里面有男性和女性的员工,如下所示:
CREATE TABLE tb_Employee
(
FNAME nvarchar(50) not NULL,
LNAME nvarchar(50) not NULL,
ID int not NULL,
BDATE date not NULL,
ADD_STREET nvarchar(50) NULL,
ADD_NUM nvarchar(50) NULL,
ADD_CITY nvarchar(50) NULL,
Gender nvarchar(50) not NULL,
salary dec(8,2) DEFAULT 0.0,
PRIMARY KEY(ID),
constraint Employee_Gender_value check (Gender in('Male','Female'))
)
insert into tb_Employee values
('Tom','Cohen',1,'01/2/1990','AA','11','LONDON','Male',4000),
('Pam','Jackson',2,'02/3/1989','BB','11','Delhi','Female',3000),
('John','Labor',3,'03/4/1988','CC','11','Delhi','Male',3500),
('Sam','Kruz',4,'04/5/1987','DD','11','New York','Male',4500),
('Todd','Pit',5,'01/2/1986','EE','11','Delhi','Male',2800),
('Ben','Jonson',6,'01/2/1985','FF','11','LONDON','Male',7000),
('Sara','Parker',7,'01/2/1984','GG','11','LONDON','Male',4800),
('Valiarie','Russell',8,'01/2/1983','HH','11','LONDON','Male',5500),
('James','Ten',9,'01/2/1980','AA','II','New York','Female',6500),
('Russell','Ted',10,'01/2/1978','AA','JJ','New York','Female',8800)
我也有一个这样的功能:(它给了我一张只有我发送的性别的员工表)
create function getEmployeeByGender(@gender nvarchar(50))
returns table
as
return (select * from tb_Employee where Gender=@gender)
但我无法让它在 1 个查询中更新
update dbo.getEmployeeByGender('Female')
set ADD_STREET = 'bbb'
update dbo.getEmployeeByGender('Male')
set ADD_STREET = 'aaa'