【发布时间】:2015-02-18 14:38:47
【问题描述】:
在 t-sql 中,有没有办法在 like 语句中进行模式匹配,以便您可以在给定集合中搜索 1 个或多个字符?
具体来说,我正在尝试提出一个 LIKE 语句,该语句将返回以 1 个或多个字母开头并以 1 个或多个数字结尾的字符串。
所以这些字符串应该匹配:
- abcd1234
- a1
- abcdef2
- ab123456
而且这些字符串不应该匹配:
- abcd
- 1234
- abcd1234abcd
- 1abcd1
我知道您可以使用 % 通配符来匹配 0 个或多个字符的字符串,并且您可以使用括号 [] 来匹配给定集中的单个字符。但是有什么方法可以将它们组合起来,以便我可以匹配给定集合中的 1 个或多个字符?
这样的东西会很好,但当然行不通:
WHERE ColumnName LIKE '[%a-z][%0-9]'
有人知道这个问题的解决方案吗?还是在 SQL Server 中不可能?
谢谢, 吉姆
【问题讨论】:
-
您不需要检查整个内容是字母数字,第一个字符是文本,最后一个字符是数字吗?
-
不,那行不通,因为我首先想要所有字母字符,然后是数字字符。下面马丁史密斯的评论确实符合我的要求。
标签: sql-server regex sql-like