【问题标题】:Check if a string has a combination of a substring and numbers in sql在sql中检查字符串是否包含子字符串和数字的组合
【发布时间】:2020-08-11 14:21:14
【问题描述】:

我如何编写一个 SQL where 语句来检查一个字符串是否包含一些子字符串和一个数字。例如:

字符串:macsea01

像'macsea'这样的字符串加上一个数字

【问题讨论】:

标签: sql dbeaver


【解决方案1】:

正则表达式是这个问题最明显的解决方案。如果没有关于字符串具体格式的更多细节,我可以建议以下内容,它将匹配字母表中的一个字母序列,后跟一个数字:

where column_name like '%[a-zA-Z][0-9]%'

如果您在字符串的开头查找 macsea 后跟一个数字,则应该是:

where column_name like 'macsea[0-9]%'

【讨论】:

  • 我猜要求是检查XXXXX####格式,所以也许^[a-zA-Z]+[0-9]+$
  • @AlexLarionov OP 写了“如果一个字符串包含一些子字符串和一个数字”,所以他想要一个 SUBstring,而不是整个匹配。
【解决方案2】:

这里的正则表达式似乎有点滑,根据您的需要,您可以例如将字符串分成几个部分,首先是文本部分,然后取出字符串的其余部分,尝试将其转换为数字。

类似这样的东西(但我认为这个特定的代码被破坏了

where substring(column_name, 1, 6) = 'macsea' and cast(substring(column_name, 7, 1000) as int) > 0

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 1970-01-01
    • 2011-11-09
    • 2013-05-18
    • 2020-11-28
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多