2016-03-31 7 views
0

ich eine Datenbanktabelle haben, die in ihnen Englisch und Chinesisch Namen hat. Ich habe die Kollatierung der Spalte mit dem chinesischen Namen in Chinese_PRC_CS_AS geändert, sortiert aber immer noch nicht richtig.MS SQL eine Spalte mit chinesischen Namen Sortierung

Ich möchte sie nach sortieren, wie das Wörterbuch mit (Pinyin).

Darf ich wissen, ob jemand zuvor getan hat?

+0

Können Sie uns eine kleine Probe Ihrer Ergebnisse geben, die Ihr Problem zeigt, und ein Beispiel für die Art o rder, die Sie tatsächlich statt wollen? Vielen Dank! –

Antwort

1

Sie können Chinese_PRC_CS_AS in Ihrer SELECT-Anweisung angeben

select * from yourtable order by columnWithChineseName collate Chinese_PRC_CI_AS 
0

ich auch die Lösung bei [http://www.blogjava.net/parable-myth/archive/2010/10/12/334525.html][1] gefunden. Um zu verhindern, dass die Verbindung in Zukunft unterbrochen wird, werde ich den Inhalt hier einfügen. Der Kredit sollte dem ursprünglichen Autor zurückgegeben werden.

sql 按 拼音 排序

select * from Benutzer, um nach Namen sortieren Chinese_PRC_CS_AS_KS_WS

二 排序 规则 简介:.

什么叫排序规则呢?ms是这样描述的:"在 microsoft sql server 2000 中, 字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存 储和比较字符所使用的规则。" 

在 查询 分析器 内 执行 下面 语句, 可以得到 sQL Server 支持 的 所有 排序 规则.

select * from :: fn_helpcollations()

排序 规则 名称 由 两 部份 构成, 前 半 部份 是 指 本 排序 规则 所 支持 的 字符 集 如. Chinese_prc_cs_ai_ws 前 半 部份: 指 Unicode 字符 集, chinese_prc_ 指 针对 大陆 简体字 Unicode 的 排序 规则. 排序 规则 的 后 半 部份 即 后缀 含义: _bin 二进制 排序 _ci (cs) 是否 区分 大小写, ci 不 区分, cs 区分 _ai (as) 是否 区分 重音, ai 不 区分, wie 区分 _ki (ks) 是否 区分 假名 类型, ki 不 区分, ks 区分 _wi (ws) 是否 区分 宽度 wi 不 区分, ws 区分

区分 大小写: 如果 想让 比较 将 大写字母 和 小写 字母 视为 不等, 请 选择 该 选项 区分 重音:.. 如果 想让 比较 将 重音 和 非 重音 字母 视为 不等, 请 选择 该 选项 如果 选择 该 选项, 比较 还将 重音 不同 的字母 视为 不等 区分 假名. 如果 想让 比较 将 片假名 和 平假名 日语 音节 视为 不等, 请 选择 该 选项 区分 宽度. 如果 想让 比较 将 半角 字符 和 全 角 字符 视为 不等, 请 选择该 选项

三.Anwendungen Sortierungs: SQL Server bietet eine Reihe von Fenstern und spezieller Sqlserver Sortierung, aber ihre Anwendung ist oft von Entwicklern ignoriert. In der Tat ist es von großem Nutzen in der Praxis.

Fällen 1: den Inhalt der Tabelle Spaltennamen in alphabetischer Reihenfolge Lassen:

create table # t (id int, name varchar (20)) einsetzen #t 1 wählen, die Vereinigung alle 2, nationale Vereinigung wählen alle 3 wählen, die alle Menschen Vereinigung 4 wählen, ordnen A

select * from #t Reihenfolge nach Namen Tabelle # t/* Ergebnis chinese_prc_cs_as_ks_ws fallen: id Name
----------- - ------------------- A 2 4 3 1 Land */

Fällen 2: Tabellenspalte Namenstagesst Hub nach Inhalt sortiert:

create table #t (id int, name VARCHAR (20))

Einsatz #t 1 zu wählen, drei union all 2 wählen, B union all 3 wählen, zwei Vereinigung alle 4 wählen, eine Vereinigung alle 5 wählen, zehn select * from #t Reihenfolge nach Namen collate chinese_prc_stroke_cs_as_ks_ws drop table #t/* Ergebnis: id
Name
----------- -------------------- 4 a 2 b 3 = 5 + 1 * drei/vier

in der praktischen Anwendung KollationIch jetzt ein Beispiel geben:

mit charakteristischen Sortierungs berechnet Striche der chinesischen Schriftzeichen

Um die Striche der chinesischen Schriftzeichen zu berechnen, haben wir erste Vorbereitung zu tun, wissen wir, Fenster multinationalen Zeichen, Unicode derzeit enthalten chinesischen Schriftzeichen waren 20.902. Vereinfachte chinesische Schriftzeichen Unicode-Wert GBK Code 19968 von Anfang an. Lassen Sie uns zunächst alle Zeichen bekommen, nicht Wörterbuch Sqlserver Methode verwenden wir einfach nutzen SQL-Anweisung nehmen Sie bekommen können:

Top-20902 Code wählen = Identität (int, 19968,1) in #t von syscolumns a, syscolumns b

dann die folgende Anweisung, wir alle Charaktere erhalten, wird es durch Unicode-Werte sortiert:

Auswahlcode, nchar (Code) als cnword von #t

wir dann select-Anweisung und lassen sie es sort streicht.

Auswahlcode, nchar (Code) als cnword von #t Auftrag von nchar (Code) collate chinese_prc_stroke_cs_as_ks_ws, Code

Ergebnis: Code cnword

Dieser Artikel Quelle http://www.itphome.cn/shujukuyingyong/mssql/2010-01-27/106.html

[1] : http://www.itphome.cn/shujukuyingyong/mssql/2010-01-27/106.html