Sql server SQL Server中的正则表达式似乎无法正常工作

Sql server SQL Server中的正则表达式似乎无法正常工作,sql-server,regex,Sql Server,Regex,将行与MyColumn='D12345'匹配(显然),但是 没有。为什么?我能做什么呢?使用PatIndex select * from MyTable where MyColumn LIKE '[D]?[0-9]*%' 正如jnevil所指出的,目前LIKE不支持完整的regex,而且即使t-SQL也不支持regexp。要在SQL Server中使用正则表达式,有两种方法: 1) 使用。自SQL Server 2005以来,就支持这种方法 2) 在SQL Server 2016及更高版本中,

将行与MyColumn='D12345'匹配(显然),但是

没有。为什么?我能做什么呢?

使用PatIndex

select * from MyTable where MyColumn LIKE '[D]?[0-9]*%'

正如jnevil所指出的,目前
LIKE
不支持完整的regex,而且即使t-SQL也不支持regexp。要在SQL Server中使用正则表达式,有两种方法:

1) 使用。自SQL Server 2005以来,就支持这种方法


2) 在SQL Server 2016及更高版本中,使用
sp\u execute\u external\u脚本调用。在SQL Server 2017中,您可以用同样的方式调用python脚本,因为它不支持完整的正则表达式,只是它的一个超级精简的伪版本。
select * from MyTable where MyColumn LIKE '[D]?[0-9]*%'
SELECT * FROM YourTable WHERE PATINDEX('%[a-z][0-9]%',ColumnName)>0