0

我有一个包含以下字段的学生表:

sid     sname    gender
 1       xyz       m
 2       abc       f
 3        wxy      m
 4       jkl       f

我想将性别列中的数据交换为男性对女性和女性对男性。

我已经用一个存储过程尝试了这个:

CREATE PROCEDURE [dbo].[replacesex]
AS
BEGIN
SET NOCOUNT ON;
declare @sex char(10)
select @sex=sex
from dbo.student
if(@sex='f')
update dbo.student
set sex='m'
    else
    update dbo.student
set sex='f'
END
4

3 回答 3

1

尝试这个:

UPDATE Student
SET gender = CASE gender WHEN 'm' THEN 'f'
                         WHEN 'f' THEN 'm'
             END
于 2013-02-18T19:30:18.950 回答
0

较短的版本将是:

UPDATE Student
    SET gender = CASE gender WHEN 'm' THEN 'f' ELSE 'm' END
于 2013-02-18T20:30:43.687 回答
0

一种方法是 CASE 语句

UPDATE Student
set gender =case gender when'm' then 'f'
when 'f' then 'm' end
于 2013-02-18T19:31:55.227 回答