1
TSQL patindex中CHAR(13)或CHAR(14)的問題是什麼? 只要我將CHAR(14)包含在一個模式中,就沒有找到記錄。 尋找答案,我剛剛發現自己的問題(未答覆)從2009年(這裏:http://www.sqlservercentral.com/Forums/Topic795063-338-1.aspx)。CHAR(14)不允許在SQL Server T-SQL patindex範圍內?
這裏是另一個簡單的測試,來說明我的意思:
/* PATINDEX TEST */
DECLARE @msg NVARCHAR(255)
SET @msg = 'ABC' + NCHAR(13) + NCHAR(9) + 'DEF'
DECLARE @unwanted NVARCHAR(50)
-- unwanted chars in a "chopped up" string
SET @unwanted = N'%[' + NCHAR(1) + '-' + NCHAR(13) + NCHAR(14) + '-' + NCHAR(31) + ']%'
SELECT patindex(@unwanted, @msg)
- 結果:4
-- NOW LET THE unwanted string includ the whole range from 1 to 31
SET @unwanted = '%['+NCHAR(1)+'-'+NCHAR(31)+']%' -- -- As soon as Char(14) is included, we get no match with patindex!
SELECT patindex(@unwanted, @msg)
- 結果:0
我的排序規則是Finnish_Swedish_CI_AS,您的CTE以相同的順序爲我返回結果。我從來沒有想過,低於32的字符可能會有不同的順序,並且依賴於排序規則!謝謝! –
很高興知道這一點。謝謝。 – abhi