如何在存储过程中获取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
我一直在寻找,但仍然没有找到最好的方法
我有一个 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