这不会返回预期的结果。不知道如何逃避左方括号和右方括号,以便PATINDEX将它们考虑在内。

有什么线索吗?非常感谢。

SELECT
    PATINDEX('%[[SQLSERV]].DBNAME.DBO.[[[0-9a-zA-Z]]]%','ert[SQLSERV].DBNAME.DBO.[Table name]asdadsf')


这应该返回3,但返回0。

最佳答案

显然,不需要使用右括号:

SELECT
    PATINDEX('%[[]SQLSERV].DBNAME.DBO.[[][0-9a-zA-Z _-]%','ert[SQLSERV].DBNAME.DBO.[Table name]asdadsf')


以上回报4。

此外,我们无法像使用LIKE一样自定义与PATINDEX结合使用的转义字符。

关于sql-server-2012 - 使用SQL Server在PATINDEX中转义方括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32403133/

10-12 14:01