sql-server - 两个独立的 TRUE SQL 语句组合成 FALSE
问题描述
我正在使用 Transact SQL,并且在以下示例代码评估为 true 时遇到问题:
CASE
WHEN [ProductName] = 'Example' AND [Payment] > 0 THEN 'Category A'
ELSE 'Category B'
END
这个问题是由类型错误引起的吗?当独立检查时,它们各自解析为“A 类”。但是,当与 AND 语句结合时,它们会解析为“B 类”。
关于如何解决的任何想法?
解决方案
您正在检查的条件可能会'Category A'
在您独立运行它们时进行评估。但是,这并不意味着您的代码将'Category A'
在您使用 AND 逻辑运算符运行它们时进行评估。
看起来您的表/视图中没有一行同时满足[ProductName] = 'Example' AND [Payment] > 0
同一行中的两个条件 ( )。
您是否使用以下查询检查过您的状况?
SELECT *
FROM tablename
WHERE [ProductName] = 'Example' AND [Payment] > 0
推荐阅读
- flowtype - 流程:为什么它抱怨字符串为空/未定义?
- java - 使用 indexOf() 方法,有没有办法让我返回按字母顺序排列的字符串中的第一个索引?爪哇
- java - 有没有办法使用 Gson/Jackson 将 Javolution Struct 对象转换为 json?
- protractor - 并行运行数据驱动测试的量角器
- angular - 将 routerLink 与函数调用一起使用
- r - R - 如何使用 system() 或 system2() 执行 PowerShell cmds
- java - 在没有eclipse的情况下安装Java库
- haskell - Stack 如何决定依赖关系?
- javascript - 如何在类组件中使用反应导航道具?
- angular - Angular 6:更改对象的属性并将其保存到数据库(内存中 Web API)