TSQL patindexのCHAR(13)またはCHAR(14)の問題は何ですか? パターンにCHAR(14)を含めると、レコードが見つかりません。 回答を検索していますが、私は自分の質問を(回答していない)2009年から見つけました(ここではhttp://www.sqlservercentral.com/Forums/Topic795063-338-1.aspx)。結果 -SQL ServerのT-SQLのpatindexの範囲でCHAR(14)は使用できませんか?
/* 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