首页 > 解决方案 > SQL LIKE 中表达式的重复

问题描述

有没有办法在 SQL LIKE 中表达重复。我有以下查询匹配 4 或 5 个数字,然后是连字符,然后是 8 个附加数字:

SELECT * FROM Table
WHERE Field LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
   OR Field LIKE '[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

在其他语言中,我会这样写:[0-9]{4-5}-[0-9]{8}. 有没有办法在 SQL 中简化上述表达式?

标签: sqlsql-serverregex

解决方案


这看起来像 SQL Server。您可以构造字符串:

select '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]',
       replicate('[0-9]', 4) + '-' + replicate('[0-9]', 8)

但是,SQL Server 没有内置的正则表达式支持。


推荐阅读