如何在存储过程中获取SQL服务器中的所有位字段值

How to get All bit field value in SQL Server in stored procedure

我一直在寻找,但仍然没有找到最好的方法

我有一个 table 和 sex 列 (bit),所以该值将为 1/0/null

我的带参数的存储过程@sex

 SELECT * 
 FROM [dbo].[data] 
 WHERE sex = ISNULL(@sex, sex)

当我发送 @sex null 时,查询只给我所有带有 sex 字段 true 和 false 但不为 null 的数据

谁能给我一个获得所有价值的方法?真、假、空?

我正在尝试使用案例但无法解决问题,请帮助我

来自上一条评论的我的存储过程

select   
    [idUser],   
    [sex] 
FROM    
    [dbo].[data] 
WHERE   
    (@sex IS NULL AND sex is null)
    OR (@sex IS NOT NULL AND sex = @sex)

试试这个.. 为@sex 分配 0,1 或 null

CREATE TABLE #TEMP(ID INT, SEX BIT)
INSERT INTO #TEMP VALUES(1,1)
INSERT INTO #TEMP VALUES(2,1)
INSERT INTO #TEMP VALUES(3,0)
INSERT INTO #TEMP VALUES(4,0)
INSERT INTO #TEMP VALUES(5,NULL)

DECLARE @sex BIT
SET @sex=NULL

SELECT * FROM #TEMP WHERE @sex IS NULL or sex=@sex
DROP TABLE #TEMP