我想在数据库中分隔性别AS MALE和FEMALE,而我用于性别的数据类型是INT。
Gender
------
1
2
像这样记录数据
Gender
------
Male
Female
现在,我希望这种形式的数据存储过程中。
答案 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 数据类型是整数数据类型,其值可以为1
,0
或NULL
。
答案 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;