首页 > 解决方案 > 两个独立的 TRUE SQL 语句组合成 FALSE

问题描述

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

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

这个问题是由类型错误引起的吗?当独立检查时,它们各自解析为“A 类”。但是,当与 AND 语句结合时,它们会解析为“B 类”。

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

标签: sql-servertsql

解决方案


您正在检查的条件可能会'Category A'在您独立运行它们时进行评估。但是,这并不意味着您的代码将'Category A'在您使用 AND 逻辑运算符运行它们时进行评估。

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

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

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

推荐阅读