Sql server 如何在SQLServer中使用正则表达式

Sql server 如何在SQLServer中使用正则表达式,sql-server,tsql,sql-like,Sql Server,Tsql,Sql Like,我试过使用下面的方法,但不起作用 CREATE TABLE emp ( empid int IDENTITY(1,1) PRIMARY KEY, jobtitle varchar(50) ); INSERT INTO emp VALUES ('Programmer'), ('VP'), ('DBA'); SQL Server实际上不支持任何正则表达式。您在这里的最佳选择可能是: 挑选* 来自emp 其中UPPERjobtitle如“PROG%”或UPPERjobtitle如

我试过使用下面的方法,但不起作用

CREATE TABLE emp
(
    empid int IDENTITY(1,1) PRIMARY KEY,
    jobtitle varchar(50)
);

INSERT INTO emp 
VALUES ('Programmer'), ('VP'), ('DBA');

SQL Server实际上不支持任何正则表达式。您在这里的最佳选择可能是:

挑选* 来自emp 其中UPPERjobtitle如“PROG%”或UPPERjobtitle如“VP%”;
你做过什么调查吗?简短的回答:你做不到。SQL Server不支持正则表达式。详细回答:您可以通过SQLCLR,但只能用于prem服务器,这会破坏性能,因为查询不可搜索。在这种情况下,索引联合可能会有所帮助:如果存在,请从值“PROG%”中选择1,“VP%”vVal WHERE jobtitle LIKE Val.这对于一般情况来说不是一个好的解决方案或者从emp连接值中选择DISTINCT*“PROG%”,“VP%”vVal ON jobtitle LIKE v.ValIs UPPER需要默认的不区分大小写的排序规则吗?@Dai刚刚学到了一些东西;假设您的评论是正确的,我不知道默认排序规则是不区分大小写的。300K+karma,您不知道吗O据我所知,所有SQL实现都使用了不区分大小写的排序规则,可以追溯到20世纪70年代。
SELECT * 
FROM emp
WHERE jobtitle LIKE '(PROG|VP)%';