【问题标题】:substring before character in Teradata sqlTeradata sql中字符前的子字符串
【发布时间】:2021-06-05 19:19:39
【问题描述】:

我想在忽略第一个字符(如果存在)的字符之前添加子字符串。

数据:

AM135678R1 --------------> 解决方案:AM135678

1837944788D12 --------------> 解决方案:1837944788

UNZ35789479S --------------> 解决方案:UNZ35789479

UNV37499888998A2 --------------> 解决方法:UNV37499888998

【问题讨论】:

    标签: sql substring teradata trim


    【解决方案1】:

    您的所有示例都希望从字符串中删除最后两个字符。这符合您的要求吗?

    select left(str, length(str) - 2)
    

    作为更通用的解决方案,可以使用regexp_substr()

    select regexp_substr(str, '^[A-Z]*[0-9]+')
    

    但这似乎有点矫枉过正。

    【讨论】:

    • 这行得通,后续问题是无论如何我也可以得到子字符串。例如1:1837944788D12 --------------> 解决方案:D12。示例2:UNZ35789479S --------------> 解决方案:S
    • @KG11 。 . .那可能更棘手。您应该提出一个新问题,其中包含多个显示不同可能字符串的示例。
    猜你喜欢
    • 1970-01-01
    • 2014-07-01
    • 2023-03-14
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2012-07-23
    相关资源
    最近更新 更多