使用MS SQL,我喜欢在列Item translation (IT).Description为NULL且客户C.[Language Code]的语言设置为English (ENG)时将OEM_Description列中的信息替换为原始项目描述(一.【说明】)
我提出了这个查询:
SELECT
"OEM_Description" =
CASE
WHEN (C.[Language Code] = 'ENG' and IT.[Description] = NULL)
THEN I.[Description]
ELSE IT.[Description]
END,
C.Name as Customer_Name
但是,如果我在添加 IT 测试后立即测试“C.[Language Code] = 'ENG'”,则信息只会被替换。[Description] = NULL 不再替换任何内容。
我做错了什么?
你没有提到什么 DBMS,但你可能需要
IS NULL
而不是= NULL
. 但是,当这是 texbook 使用时,您正在创建一个复杂的案例COALESCE ()
:基于评论的替代解决方案:
IS NULL 不是一个函数
= NULL
,而是像这样的原始函数的替代品: