select * from MyTable where MyColumn LIKE '[D][0-9]%'
匹配一行MyColumn = 'D12345'
(显然),但
select * from MyTable where MyColumn LIKE '[D]?[0-9]*%'
没有按'吨。为什么?我该怎么办?
答案 0 :(得分:2)
正如JNevill目前所指出的那样LIKE
并不支持完整的正则表达式,而且即使 T-SQL也不支持regexp 。要在SQL Server中使用正则表达式,有两种方法:
1)使用User-Defined Function by using Common Language Run-time Integration 致电System.Text.RegularExpressions。自SQL Server 2005
以来,这种方法得到了支持 2)在SQL Server 2016及更高版本中,使用sp_execute_external_script
调用Regular Expressions with the R Language。在SQL Server 2017中,您可以以相同的方式调用python脚本
答案 1 :(得分:1)
使用PatIndex
SELECT * FROM YourTable WHERE PATINDEX('%[a-z][0-9]%',ColumnName)>0