我有一个包含多种语言数据的表格列。
我需要按照我的指定语言进行排序,比如印地语。
如何通过整理或其他方式实现它?
Comments
Nvarchar(MAx)
示例列数据
This is an example
To je příklad.
هذا مثال على ذلك.
उदाहरण है.
यह एक उदाहरण है.
ಈ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.
'印地语'排序后的输出应为:
उदाहरण है.
यह एक उदाहरण है.
This is an example
To je příklad.
هذا مثال على ذلك.
ಈ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.
使用的脚本:
CREATE TABLE dbo.Data
( unicodeData NVARCHAR(200)
)
GO
INSERT INTO dbo.Data ( unicodeData)
VALUES
( N'This is an example')
, (N'यह एक उदाहरण है.')
, (N'उदाहरण है.')
, (N'ಈ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.')
, (N'एक उदाहरण है.')
, (N'هذا مثال على ذلك.')
, (N'To je příklad.');
GO
select * from dbo.unicodeData
order by unicodedata Collate Indic_General_100_CI_AI
答案 0 :(得分:0)
使用Order by Column COLLATE语法。需要使用Indic_General_90_CI_AS排序规则。因为它似乎
该参考文献称印地语(在此(2005)版本中已弃用) 已停止并由Indic_General_90_CI_AS(仅限Unicode)替换。
SELECT Comments from TABLEX
ORDER BY Comments
COLLATE Indic_General_90_CI_AS ASC;
整理和排序通常只使用一种语言。您需要多种语言排序,您需要为数据添加自定义值。我在您的表中添加了languageSortingPriority列,然后使用languageSortingPriority列进行排序。
CREATE TABLE dbo.unicodeData
(
languageUsed VARCHAR(50)
,languageSortingPriority int
, unicodeData NVARCHAR(200)
, nonUnicodeData VARCHAR(200) -- same data in a normal VARCHAR column for comparison
, comments VARCHAR(100)
)
GO
INSERT INTO dbo.unicodeData (languageUsed, languageSortingPriority,unicodeData, nonUnicodeData, comments)
VALUES
('English', 2, N'This is an example', N'This is an example', NULL)
, ('Hindi', 1,N'यह एक उदाहरण है.', N'यह एक उदाहरण है.', 'Using the preceding N in both strings but VARCHAR is still a ?')
, ('Hindi', 1, N'यह एक उदाहरण है.', 'यह एक उदाहरण है.', 'Not using the preceding N in both strings so both are a ?')
, ('Kannada' ,3, N'ಈ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.', N'ಈ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.', NULL)
, ('Arabic', 3,N'هذا مثال على ذلك.', N'هذا مثال على ذلك.', NULL)
, ('Czech', 2 ,N'To je příklad.', N'To je příklad.', NULL);
GO
select * from dbo.unicodeData
order by languageSortingPriority,unicodedata Collate Indic_General_100_CI_AI DESC
请在此处查看sql fiddle。
答案 1 :(得分:0)
美好的一天,我已经在MSDN论坛上回答了OP问题。基本上你需要按每个排序规则排序。
您可以在TechNet上看到有关此问题的文章: http://social.technet.microsoft.com/wiki/contents/articles/31194.t-sql-sort-data-by-multiple-languages.aspx
我希望这很有用: - )