0

我正在使用 Pervasive V11。在以下查询中,我有一个名为 ModelYear 的可选参数。当它作为 NULL 传递时,我想将它排除在 WHERE 子句中运行。

SELECT  Year,Make,Style,Model,Color1,VIN
                       FROM
                       Vehicles
                      WHERE

                         (VIN ='{VIN}') AND (xyz = '{xyz}') AND 
                       (COALESCE(NULLIF('{ModelYear}', ''), Year))
4

1 回答 1

0

你可以试试:

SELECT  
   Year,Make,Style,Model,Color1,VIN
FROM
   Vehicles
WHERE
   (VIN ='{VIN}') AND 
   (xyz = '{xyz}') AND 
   (ISNULL('{ModelYear}','') = Year END)

文档

ISNULL (exp, value):将 NULL 替换为为 value 指定的值。Exp 是检查 NULL 的表达式。Value 是 exp 为 NULL 时返回的值。如果不为 NULL,则返回 Exp。value 的数据类型必须与 exp 的数据类型兼容。

NULLIF (exp1, exp2):如果两个表达式不等价,NULLIF 返回 exp1。如果表达式等价,则 NULLIF 返回 NULL 值。

于 2021-12-11T17:00:30.323 回答