正则表达式 MS-SQL 以 RI 开头,后跟两个更多定义的字符和一个空格

问题描述 投票:0回答:1

我有一列是字符串,我想查找该字符串以以下之一开头的所有记录:

'RIRV', 'RIUI', 'RIRI', 'RICJ', 'RIRE', 'RIRF', 'RIAW', 'RIAS', 'RINA'

所以他们都开始

RI
并且必须跟随:
'RV|UI|CJ|RE|RF|AW|AS|NA) %'

我正在使用:

WHERE SUBSTRING(A.[pa-smart-comment], 1, 5) IN (
            'RIRV ', 'RIUI ', 'RIRI ', 'RICJ ', 'RIRE ','RIRF ','RIAW ','RIAS ','RINA '
            )

但我发现

LIKE
使用起来更快。

sql sql-server regex
1个回答
0
投票

将可搜索的 LIKE 与您想要缩小结果范围的任何内容相结合。这将允许 SQL 有效地消除不以“RI”开头或前 4 个字符后没有空格的行。

WHERE A.[pa-smart-comment] like 'RI__ %'
  and SUBSTRING(A.[pa-smart-comment], 1, 4) IN (
            'RIRV', 'RIUI', 'RIRI', 'RICJ', 'RIRE','RIRF','RIAW','RIAS','RINA'
            )

© www.soinside.com 2019 - 2024. All rights reserved.