sql - 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 中简化上述表达式?
解决方案
这看起来像 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 没有内置的正则表达式支持。
推荐阅读
- linkedin - LinkedIn API 能否用于自动收集有关人们当前工作、以前工作和教育的数据?
- python - 如何从 TensorFlow 中的检查点获取变量和 .pb 文件?
- java - 如何在Java中将字节数组写入二进制文件
- java - 具有空字段的 Java 比较器
- c++ - 模板类中的析构函数给出错误
- c# - 在 autofac c# 中首次调用对象时动态实例化对象
- android - 单击 RecyclerView 后更新主要活动中的 TextView
- bash - bash中opts=${1:+--host $1}是什么意思?
- php - Zend Framework - 如何告诉漂亮的 url 去静态 url?
- ios - 如何减少 base64 字符串长度