GoForum🌐 V2EX

适配信创数据库的人的精神状态 be like

woodfizky · 2026-01-13 21:23 · 0 次点赞 · 0 条回复

适配过程中发现:如果某个 SQL 的查询条件是 some_col != “,那么返回的结果就会是空

于是做了如下简单实验: SQL

select
    case
        when ('1' != '') then '1'
        when ('1' = '') then '2'
        else 'else'
    end as result_1,
    ('1' = '')::bool as result_2,
    ('1' != '')::bool as result_3,
    ('1' != '' or '1' = '') as always_true_1,
    ('1' != '1' or '1' = '1') as always_true_2

result:

{
  "postgres": {
    "result_1": "2",
    "result_2": false,
    "result_3": true,
    "always_true_1": true,
    "always_true_2": true
  },
  "gaussdb": {
    "result_1": "else",
    "result_2": null,
    "result_3": null,
    "always_true_1": null,
    "always_true_2": true
  }
}

完全不明白为什么 gaussdb 的逻辑是这样的,如果有人知道可以告诉我一下吗?

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: woodfizky
发布: 2026-01-13
点赞: 0
回复: 0