2009-11-20 72 views
0

我的SQL表中有像問題與U + 02BB字符在SQL服務器LIKE搜索

Hawaiʻi 
01 
abcʻdef 
ʻabc 
abcʻ 

行中的所有 「撇號」 實際上是奧菜字符(U + 02BB)

當我使用下面的搜索聲明

select text01 from atable where text01 like N'%ʻ%' 

我得到的所有返回的行,甚至是 「01」

ESCAPE子句(如LIKE N '%!'%' ESCAPE '!')不利於

的SQL Server 2005 SP3

任何想法?

回答

0

也許嘗試CHARINDEX,就像這樣:

DECLARE @FindThis nchar(1) 
SET @FindThis = -- err, however you get this particular character into a variable 

SELECT text01 from atable where charindex(@FindThis, text01) > 0 
+0

沒有。只有'abc行被返回。 感謝您嘗試:) – Andy 2009-11-20 15:52:40

0

假設你的奧菜由NCHAR(96),(我認爲這是正確的)代表,那麼你有一個字符串是這樣的:

select N'Hawai' + nchar(96) + N'i' 

然後類似的表達將是:

select case 
    when (N'Hawai' + nchar(96) + N'i') like (N'%' + NCHAR(96) + N'%') 
    then 'Found okina!' 
    else 'D''OH!' 
    end 

Mele Kalikimaka a Hauoli Makahiki Hou!

0

此只得到一個結果,以及在我的測試(網絡瀏覽器的定製界面,MSSQL,我沒有企業管理得心應手的那一刻,在我的Mac):

select text01 from atable where text01 like N'%[ʻ]%' 

你有沒有驗證創建SQL語句並傳遞它的代碼正確地發送正確的unicode字符?

試試這個:

SELECT UNICODE('ʻ') 

或者,它可能是一個整理的問題......排序規則設置對字符串比較產生一定的影響。