2011-02-03 84 views
2

我對unicode數據上的Sql查詢有一個很奇怪的問題。下面是我得到了什麼:SQL查詢和Unicode問題

  • 的SQL Server Express 2008 R2 AS
  • 表包含中國字/詞/短語(100,000行)

當我運行下面,我得到正確的其他行+ 36行返回......當它只能是一個行:

SELECT TOP 1000 [ID] 
     ,[MyChineseColumn] 
     ,UNICODE([MyChineseColumn]) 
    FROM [dbo].[MyTableName] 
    WHERE [MyChineseColumn]= N'㐅' 

正如你所期望,則會返回行,也以下:,,和一堆其他...

任何人有任何想法這裏發生了什麼?這真的讓我困惑,我不知道如何解決這一個(嘗試「谷歌搜索」的話)......

感謝

+0

我還應該提到,大多數其他行都是完全正確的查詢......這只是少數像上面這些「狡猾」的行爲,我真的很想找出原因。也許這是一個特定範圍的Unicode字符正在這樣做?我沒有線索...... – Matt 2011-02-03 14:40:57

回答

1

請檢查列使用適當的中國的排序規則將決定這種類型的比較中使用的語義。

0

您可能想要嘗試使用二進制排序規則,這些字符似乎以某種方式匹配爲相同(可能通過忽略大小寫和/或重音符號,具體取決於使用的排序規則)。