【问题标题】:POSTGRES: Inner join with removing id prefixPOSTGRES:删除 id 前缀的内部连接
【发布时间】:2019-12-28 22:56:00
【问题描述】:

我有两个表,一个是 instrument_static 表,看起来像这样

 epic|  name     | Updated
 -----------------------------------
 ABC |   Google |2017-02-03

另一个表是market_data,看起来像这样

 epic       | name     | Updated
 -----------------------------------
 MARKET:ABC |   Google |2017-02-03

我想使用史诗加入两个表,但请注意,market_data 中的史诗总是以“MARKET:”为前缀。有人可以帮忙

我相信这个查询与这个相同: Sql Inner join with removing id prefix

但是,当我处理 Postgress 时,我已阅读 charindex 不是受支持的函数。

这是我迄今为止设法提出的,目前又出现了一个错误:

SELECT * FROM instrument_static s INNER JOIN market_data m ON substring(m.epic, charindex(':', M.epic)+1, len(m.epic)) = s.epic

【问题讨论】:

    标签: python sql postgresql


    【解决方案1】:

    您可以在join 子句中使用字符串连接:

    select . . . 
    from instrument_static ins join
         market_data md
         on md.epic = 'MARKET:' || ins.epic and
            md.name = ins.name and
            md.updated = ins.updated;
    

    有类似的方法可以使用split()like、正则表达式匹配等来完成此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-25
      • 2019-05-26
      • 2012-07-30
      • 2021-07-08
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多