已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
2天前关闭。
截至2天前,社区正在审查是否重新讨论此问题。
Improve this question的
我想提取一个经过某个点的车牌列表。我被要求列出不是国内的车牌。
我想到了这个:
SELECT * FROM Customers
WHERE PlakaNo LIKE '[012345678]%'
and PlakaNo LIKE '__[A-Z]%'
字符串
国内的板材订单是这样的:
99 X 9999
99 X 99999
99 XX 999
99 XX 9999
99 XXX 99
99 XXX 999
型
(PlakaNo是车牌号码)
3条答案
按热度按时间vmdwslir1#
您的要求是:
您正在寻找的组合是:
字符串
最短的车牌将是5个字符长,最长的将是10。除了正则表达式之外,您始终可以在查询中包含
where length(PlakaNo) between 5 and 10
或类似的内容。你可以这样做:
Oracle 21c
型
如果您希望车牌中的空格匹配,请尝试:
型
示例:https://dbfiddle.uk/yolYwnmh
SQL Server 2022
型
示例:https://dbfiddle.uk/OiESyle8
PostgreSQL 14
型
示例:https://dbfiddle.uk/rAvrGKnx
MySQL 8
型
示例:https://dbfiddle.uk/mQUvaIU7
示例
型
结果
型
说明
[0-9]
将匹配一个数字。[0-9][0-9]
匹配2个数字。在允许更多灵活性的数据库中,您可以执行[0-9]{2}
表示2位数。^
表示在数据的开头开始匹配。$
表示匹配到数据结束。'^[0-9]{2}[A-Za-z]{1,3}[0-9]{2,5}$'
意味着,从数据开始,我想要一个数字{2}次,然后是大写字母或小写字母1,2或3次,然后是数字2,3,4或5次。希望这对你有帮助。
编辑
如果你想在车牌号之间留出这样的空间,
型
那么你可以使用这些类型的查询:
Oracle 21c
型
示例:https://dbfiddle.uk/yolYwnmh
SQL Server在正则表达式(regex)中使用空格
型
示例:https://dbfiddle.uk/ndgfZBXB
PostgreSQL
型
示例:https://dbfiddle.uk/eplGmji3
MySQL
型
示例:https://dbfiddle.uk/sVb1ENui
06odsfpq2#
如果你使用的是PostgreSQL,你可以使用
~
操作符来匹配正则表达式。然后,关于你的正则表达式,你可以这样做:
字符串
SQL演示
详细信息:
7gyucuyw3#
仅使用SQL通配符:
字符串
同样,如果不是稍微优雅一点:
型
这确实假设您已经将输入限制为严格的字母数字字符。
https://dbfiddle.uk/WXHRVi8z