我有以下值
ABCD_AB_1234
ABCD_ABC_2345
ABCD_ABCD_5678和一个正则表达式来匹配它们。
ABCD_[A-Z]{2-4}_[0-9]{4}现在,我希望将该正则表达式转换为SQL查询,以便从数据库中获取这些记录。
现在我有以下几句话
where [columnName] like 'ABCD_[A-Z][A-Z]%[_][0-9][0-9][0-9][0-9]%'问题是,我不能像在正则表达式中那样定义SQL查询中的范围,比如{2-4},我现在所做的是只设置最小范围。
有什么解决办法吗?
发布于 2022-12-01 22:19:15
假设您正在解释全貌,最简单的方法可能是创建三个条件来覆盖您的场景。
where [columnName] like 'ABCD_[A-Z][A-Z][_][0-9][0-9][0-9][0-9]%'
or [columnName] like 'ABCD_[A-Z][A-Z][A-Z][_][0-9][0-9][0-9][0-9]%'
or [columnName] like 'ABCD_[A-Z][A-Z][A-Z][A-Z][_][0-9][0-9][0-9][0-9]%'这不是最优的,但Server没有任何regex支持,所以如果您必须使用SQL来实现它,这是一种方法。
https://stackoverflow.com/questions/74648759
复制相似问题