V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
woodfizky
V2EX  ›  PostgreSQL

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

  •  
  •   woodfizky · 10 小时 14 分钟前 · 644 次点击

    适配过程中发现:如果某个 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 的逻辑是这样的,如果有人知道可以告诉我一下吗?

    2 条回复    2026-01-14 00:12:30 +08:00
    momocraft
        1
    momocraft  
       7 小时 28 分钟前   ❤️ 1
    信创要是和 postgre 一样 那创新体现在哪里 :doge:
    yeqizhang
        2
    yeqizhang  
       7 小时 20 分钟前 via Android
    刚搜了,这个数据库认为''和 null 是一样的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:33 · PVG 07:33 · LAX 15:33 · JFK 18:33
    ♥ Do have faith in what you're doing.