sql server 按拼音分类排序的功能

  A   阿杜       阿牛       阿翔         
  B   Bjack         
  C   陈小春       成龙       陈百强       陈冠蒲       陈冠希       陈浩民       陈庆祥       陈升       陈司翰       陈晓东      
陈奕迅       陈明章       
  D   杜德伟       迪克牛仔       邓建明       邓健泓         
  E     
  F   范逸臣       方力申       费玉清       房祖名       范宗沛         
  G   恭硕良       古巨基       古天乐       光良       郭富城       郭品超       郭伟亮         
  H   黄品源       黄贯中       黄国俊       黄维得       黄耀明       黄义达       黄立行       黄家强         
  I     
  J   姜育恒         
  K   孔令奇         
  L   刘德华       罗文       李克勤       李圣杰       李宗盛       梁朝伟       梁汉文       林海峰       林俊杰       林佑威       
林志炫       林志颖       林子良       林子祥       
  M   马俊伟

 

Java代码  

  1. create function fun_getPY(@str nvarchar(4000))  
  2. returns nvarchar(4000)  
  3. as  
  4. begin  
  5. declare @word nchar(1),@PY nvarchar(4000)  
  6. set @PY=''  
  7. while len(@str)>0  
  8. begin  
  9. set @word=left(@str,1)  
  10. --如果非汉字字符,返回原字符  
  11. set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901  
  12. then (select top 1 PY from (  
  13. select 'A' as PY,N'驁' as word  
  14. union all select 'B',N'簿'  
  15. union all select 'C',N'錯'  
  16. union all select 'D',N'鵽'  
  17. union all select 'E',N'樲'  
  18. union all select 'F',N'鰒'  
  19. union all select 'G',N'腂'  
  20. union all select 'H',N'夻'  
  21. union all select 'J',N'攈'  
  22. union all select 'K',N'穒'  
  23. union all select 'L',N'鱳'  
  24. union all select 'M',N'旀'  
  25. union all select 'N',N'桛'  
  26. union all select 'O',N'漚'  
  27. union all select 'P',N'曝'  
  28. union all select 'Q',N'囕'  
  29. union all select 'R',N'鶸'  
  30. union all select 'S',N'蜶'  
  31. union all select 'T',N'籜'  
  32. union all select 'W',N'鶩'  
  33. union all select 'X',N'鑂'  
  34. union all select 'Y',N'韻'  
  35. union all select 'Z',N'咗'  
  36. ) T  
  37. where word>=@word collate Chinese_PRC_CS_AS_KS_WS  
  38. order by PY ASC) else @word end)  
  39. set @str=right(@str,len(@str)-1)  
  40. end  
  41. return @PY  
  42. end  

查询语句:

--函数调用实例: 
--select dbo.fun_getPY('中华人民共和国')
得到所有A开头的.
select id_,dbo.fun_getPY(tit) from tab where dbo.fun_getPY(tit) like 'A%' order by dbo.fun_getPY(tit)
B开头的类似:
select id_,dbo.fun_getPY(tit) from tab where dbo.fun_getPY(tit) like 'B%' order by dbo.fun_getPY(tit)

时间: 2024-10-06 17:08:42

sql server 按拼音分类排序的功能的相关文章

SQL Server转换数据库的排序规则

什么是排序规则? 排序规则指定了表示每个字符的位模式.它还指定了用于排序和比较字符的规则.排序规则具有下面的特征: ◆语言 ◆区分大小写 ◆区分重音 ◆区分假名 要了解服务器当前使用的排序规则,可以在 SQL 查询分析器中运行 sp_helpsort 系统过程. SQL Server 7.0 不支持使用多个排序规则的数据库.因此,在 SQL Server 7.0 中创建的所有数据库均使用默认的排序规则.SQL Server 2000 支持多个排序规则.SQL Server 2000 数据库可使用

SQL Server 2008数据仓库可伸缩性相关功能介绍

SQL Server 技术文档 作者: Eric N. Hanson, Kevin Farlee, Stefano Stefani, Shu Scott, Gopal Ashok, Torsten Grabs, Sara Tahir, Sunil Agarwal, T.K. Anand, Richard Tkachuk, Catherine Chang, 以及 Edward Melomed, Microsoft Corp. 技术检查员:Eric N. Hanson, Microsoft Corp

SQL Server实现split函数分割字符串功能及用法示例_MsSql

本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR

SQL Server实现split函数分割字符串功能及用法示例

本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR

SQL Server 2012 多表连接查询功能实例代码

废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 交叉连接产生笛卡尔值 (X*Y) SELECT * FROM Student cross Join dbo.ClassInfo --另外一种写法 SELECT * FROM Student , ClassInfo -- 内连接 (Inner 可以省略) SELECT * FROM Student JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID; -- Inner Jo

品味SQL Server 2005的几个新功能

server     SQL Server 2005相对于SQL Server 2000改进很大,有些还是非常实用的.举几个例子来简单说明 这些例子我引用了Northwind库. 1. TOP 表达式 SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了. --前n名的订单 declare @n int set @n = 10 select TOP(@n) * from Orders 2. 分页 不知各位过去用SQL Server 2000是怎么分页的,大多都用到了临时表

SQL Server 2008关系数据库引擎的新增功能

在SQL Server 2008中,关系数据库引擎的新增功能相对较多,本文将主要针对应用开发人员和数据库 管理员比较关心的新增特性进行详细的说明. 与开发人员相关的新增特性: Change Data Capture (CDC):变化数据捕获,可以捕获SQL Server数据表中的新增.修改和更新,并 以一种易于使用的格式提供.CDC是SQL Server 2008中新增的一项非常重要的功能,在BI应用中从业务数 据库抽取更新数据到数据仓库时非常有用.随后会有专文介绍CDC. DDL Trigge

解读SQL Server分析服务中的数据挖掘功能

 数据挖掘是SQL Server 2000中最令人激动的新功能之一.我将数据挖掘看作是一个能够自动分析数据以获取相关信息的过程,数据挖掘可以和任一关系数据库或者OLAP数据源集成使用,但它和OLAP的集成所带来的好处却是极为显著的.因为结构化的数据源使得用户无需再向数据挖掘算法提供海量信息了.尽管不是什么专家,但我从同事Greg Bernhardt那里学到东西已经足够我来对数据挖掘作一翻解释了,我还希望由此使得分析服务的数据挖掘功能不再神秘并向你展示如何在分析应用中使用数据挖掘. 数据挖掘功能

SQL Server 2008中XML的新增功能

SQL Server 技术文章 作者:Graeme Malcolm(内容主管) 技术审查:Dragan Tomic 和 Michael Rys 项目编辑:Joanne Hodgins 发布日期:2008 年 8 月 适用产品:SQL Server 2008 摘要:Microsoft SQL Server 2008 通过增强对 XML 架构验证和 XQuery 的支持及增加 xml 数据类型,构建对 XML 的广泛支持. 版权 这是一份预备文档,在本文档中所述软件的最终商业版本发布之前,该文档的内