2012-06-25 20 views
1

我有一列名稱varchar(200)。 在這一欄中數據可以用希伯來文和英文填寫。SQL查詢字符串列 - 根據語言排序

我的代碼在這個數據庫上做了查詢,我想要排序結果的選項 - 先是希伯來文,然後是英文 - 而另一種方式也是如此。

怎麼辦?如果有的話...

+0

您是否有指定語言的列? –

+0

不,我沒有這個專欄,因爲插入時我不知道這個。 – user1136875

+0

如果你不知道什麼時候插入,你怎麼知道什麼時候選擇?如果有一個額外的列標識語言,將會更容易,更高效(可擴展)。 – PeteGO

回答

3

這將按照希伯來語順序排列任何帶有希伯來字符的名字。其他名稱將以英文進行排序:

select * 
from YourTable 
order by 
     case 
     when name like '%[... all hebrew letters here ...]%' then name 
     end collate Hebrew_CI_AS 
,  name collate Latin1_General_CI_AS 

在整理,CI指不區分大小寫。 AS表示重音敏感。

+0

但是,如果我可以做的問題 - 從名單xxx按順序選擇???那將首先得到希伯來語,然後英語 - 在相同的查詢中,但相應地排序? – user1136875

+0

我認爲你可以通過他們擁有的角色認出希伯來人的名字?如果這是真的,則更新答案。 – Andomar

+0

看起來不錯,我....我會檢查它。我想你在這裏得到了很好的答案 – user1136875