2013-05-31 5 views
6

Comment trier le caractère japonais suivant dans Sql Server,Comment trier le caractère japonais dans Sql

賃貸人側連絡先 (Lessor side contact) 
解約連絡先 (Termination contacts) 
賃借人側連絡先 (Lessee side contact) 
更新連絡先 (Update contact) 

ci-dessus order(1,3,2,4)

Mais, l'ordre réel est, (ie. La sortie que je veux)

賃貸人側連絡先 (Lessor side contact) 
賃借人側連絡先 (Lessee side contact) 
解約連絡先 (Termination contacts) 
更新連絡先 (Update contact) 

ci-dessus order(1,2,3,4)

J'ai essayé comme ça,

select * from test order by Test `COLLATE Japanese_CS_AS_KS` 

mais ordre de résultat comme (3,4,2,1)

+0

essayé en utilisant 'Japanese_Unicode_CI_AS' Collation ou essayé pour 'Chinese_PRC_CI_AS collation' .. – Rahul

+0

Je crois que vous allez réellement devoir stocker une colonne" nom de tri "où vous mettez la lecture soit dans hiragana ou katakana, et trier par ce au lieu. Je ne pense pas que le kanji par lui-même soit intrinsèquement triable par n'importe quoi d'autre que le compte de radical ou de course. –

Répondre

4

En regardant de Windows Japanese collations plutôt que vos classements SQL (SQL Server prend en charge à la fois), par essais et erreurs, cela fonctionne

DECLARE @t TABLE (id int, SomeString nvarchar(100)); 
INSERT @t VALUES 
(1, N'賃貸人側連絡先'), 
(3, N'解約連絡先'), 
(2, N'賃借人側連絡先'), 
(4, N'更新連絡先'); 

select * from @t order by SomeString COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS desc 

Je ne sais pas pourquoi vous avez besoin si DESC. Notez également Japanese_XJIS_100_CS_AS_KS ne fonctionne pas

+0

ici, quel est le besoin de "DESC"? sans DESC, il montre en ordre décroissant.Pourquoi il Afficher comme ceci – Vino

1

Le code de classement a 3 particules à la fin:

  • CS - sensible à la casse
  • AS - sensible à l'accent
  • KS - kanatype sensible qui est en relation avec le japonais (discuté en ce questions)

Si vous souhaitez un classement insensible à la casse, remplacez CS par CI. Alors peut-être qu'une combinaison différente de sensibilités est nécessaire.

1

En plus de @ gbn de réponse

  • 賃 a Radical-temps le comte 154,6
  • 解 a 148,6
  • 更 a 73,3

La question devrait plutôt être, pourquoi voulez-vous l'ordre décroissant?

+0

Si j'utilise "ordre par test COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS desc", il montre dans l'ordre décroissant ... je veux afficher dans l'ordre croissant sans utiliser DESC .. – Vino

+0

@Vino: J'utilise DESC pour le trier comme vous voulez dans la question. Quand je n'utilise pas DESC (= ASC), il donne l'ordre inverse de ce que vous demandez. Par conséquent, vous demandez l'ordre décroissant .. Je pense que c'est ce que les informations de Devio explique – gbn

Questions connexes