代码之家  ›  专栏  ›  技术社区  ›  tv1902

在N未知的Postgres中需要列的初始N个字符

  •  -1
  • tv1902  · 技术社区  · 6 年前

    我在Postgres表中有一列,比如employeeId。我们根据雇员类型进行一些修改,并将其存储在数据库中。基本上,我们从这4个字符串中附加字符串 ('ACR','AC','DCR','DC') . 现在我们可以在employeeId后面附加这4个字符串的任意组合。例如, EMPIDACRDC EMPIDDCDCRAC 等等。这些是有效的组合。我需要找回 EMPID

    1 回复  |  直到 4 年前
        1
  •  1
  •   a_horse_with_no_name    6 年前

    我不完全确定我是否理解这个问题,但是 regexp_replace()

    with sample (employeeid) as (
      values
      ('1ACR'),
      ('2ACRDCR'),
      ('100DCRAC')
    )
    select employeeid,
           regexp_replace(employeeid, 'ACR|AC|DCR|DC.*$', '', 'gi') as clean_id
    from sample
    

    退货:

    employeeid | clean_id
    -----------+---------
    1ACR       | 1       
    2ACRDCR    | 2       
    100DCRAC   | 100     
    


    会的 许多的 cleaner将此信息存储在两列中。一个是empid,一个是那些“代码”