如何在Gender的数据类型为INT的情况下在SQL Server中将Gender分为MALE和FEMALE

时间:2018-09-21 08:38:28

标签: sql-server

我想在数据库中分隔性别AS MALE和FEMALE,而我用于性别的数据类型是INT。

Gender    
------      
1
2

像这样记录数据

Gender
------
Male
Female

现在,我希望这种形式的数据存储过程中。

3 个答案:

答案 0 :(得分:2)

使用CASE

CREATE TABLE Users(
    ID INT,
    Name NVARCHAR(45),
    Gender BIT
    );

INSERT INTO Users VALUES
(1, N'User1', 1),
(2, N'User2', 0);

SELECT *,
       CASE Gender
       WHEN 1 THEN 'Male'
       WHEN 0 THEN 'Female'
       ELSE
       'Unknown' END
FROM Users;

结果:

+----+-------+--------+--------+
| ID | Name  | Gender | Gender |
+----+-------+--------+--------+
|  1 | User1 | True   | Male   |
|  2 | User2 | False  | Female |
+----+-------+--------+--------+

BIT 数据类型是整数数据类型,其值可以为10NULL

答案 1 :(得分:0)

您可以将0或1用于位列 如果您提供值like 2,那么它将在表列中存储为1 因此重要的是,您只能使用0和1

我用0表示女性数据,用1表示男性

这是存储过程代码

create procedure PeopleByGender (
        @gender bit -- 1 male, 0 female
    )
    as
    if @gender is null
        --select * from people 
        select * from people where gender is null
    else
        select * from people where gender = @gender
    go

以下是通过存储过程列出女性的方法

exec PeopleByGender 0

答案 2 :(得分:0)

这将起作用:

SELECT IIF(Gender IS NULL, 'Others', IIF(Gender = 1, 'Male', 'Female')) Gender FROM Users;