两个独立的 TRUE SQL 语句组合成一个 FALSE



我正在使用事务处理SQL,并且在以下示例代码评估为true时遇到问题:

CASE
WHEN [ProductName] = 'Example' AND [Payment] > 0 THEN 'Category A'
ELSE 'Category B'
END

此问题是否由类型错误引起?当独立检查时,它们各自解析为"A类"。但是,当与 AND 语句连接时,它们解析为"类别 B"。

关于如何解决的任何想法?

当您独立运行这些条件时,它们可能会评估为'Category A'。但是,这并不意味着使用 AND 逻辑运算符运行代码时,代码的计算结果将变为'Category A'

看起来您的表/视图中没有一行在同一行中同时满足两个条件([ProductName] = 'Example' AND [Payment] > 0(。

您是否使用以下查询检查了您的状况?

SELECT * 
FROM tablename 
WHERE [ProductName] = 'Example' AND [Payment] > 0

最新更新