根据sql中的参数检查某个字段是否为空
Check a certain field for not null based on a parameter in sql
我从存储过程中获取数据。基于传递的参数,我想更改 where 子句中的 SQL 语句
声明看起来像这样
SELECT
CC.Id,
CC.TId,
CC.PId,
CC.Date
FROM Mytable CC
WHERE CC.TId IS NOT NULL
我将参数@Qualifier 传递给过程,所以我想检查这个参数。如果它是“1”,则应执行此 SQL 语句,否则应执行第二个 SQL 语句:
SELECT
CC.Id,
CC.TId,
CC.PId,
CC.Date
FROM Mytable CC
WHERE CC.PId IS NOT NULL
我尝试使用像这样的 where 子句来实现这一点
SELECT
CC.Id,
CC.TId,
CC.PId,
CC.Date
FROM Mytable CC
WHERE
(CASE
WHEN @Qualifier = '1'
THEN CC.TId IS NOT NULL
ELSE CC.PId IS NOT NULL)
但这不起作用。任何人都知道如何解决这个问题?
你的意思是:
WHERE (@Qualifier = '1' and CC.TId IS NOT NULL)
OR (@Qualifier <> '1' and CC.PId IS NOT NULL)
我从存储过程中获取数据。基于传递的参数,我想更改 where 子句中的 SQL 语句
声明看起来像这样
SELECT
CC.Id,
CC.TId,
CC.PId,
CC.Date
FROM Mytable CC
WHERE CC.TId IS NOT NULL
我将参数@Qualifier 传递给过程,所以我想检查这个参数。如果它是“1”,则应执行此 SQL 语句,否则应执行第二个 SQL 语句:
SELECT
CC.Id,
CC.TId,
CC.PId,
CC.Date
FROM Mytable CC
WHERE CC.PId IS NOT NULL
我尝试使用像这样的 where 子句来实现这一点
SELECT
CC.Id,
CC.TId,
CC.PId,
CC.Date
FROM Mytable CC
WHERE
(CASE
WHEN @Qualifier = '1'
THEN CC.TId IS NOT NULL
ELSE CC.PId IS NOT NULL)
但这不起作用。任何人都知道如何解决这个问题?
你的意思是:
WHERE (@Qualifier = '1' and CC.TId IS NOT NULL)
OR (@Qualifier <> '1' and CC.PId IS NOT NULL)