【问题标题】:Case error: An expression of non-boolean type specified in a context where a condition is expected案例错误:在预期条件的上下文中指定的非布尔类型的表达式
【发布时间】:2021-01-19 20:25:57
【问题描述】:

我正在尝试合并操作,并根据 SQL Server 中的大小写条件在特定列中插入以下字符串。但是,我得到:

在上下文中指定的非布尔类型的表达式 预计状况

我在第三个 WHEN CASE 上遇到错误。

CASE 
WHEN SOURCE.oID NOT NULL THEN 'Type A'
WHEN SOURCE.bID IS NULL THEN 'Type B' 
WHEN SOURCE.oID AND SOURCE.bID IS NOT NULL THEN 'Type C'
ELSE 'null'
END

【问题讨论】:

  • 。 . << 是什么?
  • 看起来AND之前需要一个表达式。
  • 你能不能试试:当 SOURCE.oID 不为 NULL 且 SOURCE.bID 不为 NULL THEN 'Type C'
  • 投票保持开放,这是你在SQL开始时的一个常见错误,你要学会注意,AND必须用于组合两个布尔表达式,不能是用于组合两个字段,以便一起评估它们。

标签: sql sql-server merge case


【解决方案1】:

第三行缺少第一个条件条件应该是这样的:

WHEN SOURCE.oID IS NULL AND SOURCE.bID IS NOT NULL THEN 'Type C'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多