根据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)