2015-09-04 37 views
3

這不會返回預期的結果。不知道我怎樣才能擺脫左右方括號,以便PATINDEX將它們考慮在內。在PATINDEX中用SQL Server轉義方括號

任何線索?非常感謝。

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

這應返回3,但它返回0

回答

2

顯然右括號不需要進行轉義:

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

以上的回報4.

此外,我們無法像使用LIKE那樣自定義與PATINDEX結合的轉義字符。