sql汉字转拼音

/*创建取拼音首字母函数*/
create function [dbo].[fn_ChineseToSpell](@strChinese varchar(500)=‘‘)
returns varchar(500)
as
begin /*函数实现开始*/
     declare @strLen int,@return varchar(500),@i int
     declare @n int,@c char(1),@chn nchar(1)  
     select @strLen=len(@strChinese),@return=‘‘,@i=0
     while @i<@strLen
     begin /*while循环开始*/
             select @[email protected]+1,@n=63,@chn=substring(@strChinese,@i,1)
             if @chn>‘z‘/*原理:“字符串排序以及ASCII码表”*/                
                 select @n = @n +1,@c =case chn when @chn then char(@n) else @c end from(select top 27 * from (select chn = ‘吖‘ union all select ‘八‘ union all select ‘嚓‘ union all select ‘咑‘ union all select ‘妸‘  union all select ‘发‘  union all select ‘旮‘  union all select ‘铪‘  union all select ‘丌‘ /*because have no ‘i‘*/ union all select ‘丌‘ union all select ‘咔‘ union all select ‘垃‘ union all select ‘嘸‘ union all select ‘拏‘ union all select ‘噢‘ union all select ‘妑‘ union all select ‘七‘ union all select ‘呥‘ union all select ‘仨‘ union all select ‘他‘ union all select ‘屲‘ /*no ‘u‘*/ union all select ‘屲‘ /*no ‘v‘*/ union all select ‘屲‘ union all select ‘夕‘ union all select ‘丫‘ union all select ‘帀‘ union all select @chn) as a  order by chn COLLATE Chinese_PRC_CI_AS ) as b  
             else
                 set @[email protected]
             set @[email protected][email protected]  
     end /*while循环结束*/  
     return(@return)  
end /*函数实现结束*/

select [dbo].[fn_ChineseToSpell](‘水管‘)

时间: 2024-10-10 08:31:08

sql汉字转拼音的相关文章

sql server 汉字转拼音首字母

create function fun_getPY ( @str nvarchar(4000) ) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY='' while len(@str)>0 begin set @word=left(@str,1) --如果非汉字字符,返回原字符 set @[email protected]+(case when unicode(@word) bet

sql函数:汉字转换为拼音

sql数据库自定义一个函数把下面代码写进去 功能是得到汉字拼音首字母create function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY='' while len(@str)>0 begin set @word=left(@str,1) --如果非汉字字符,返回原字符 set @[email protected

sql函数--汉字转拼音(亲测sqlserver可用)

--方法一sqlserver汉字转拼音首字母 --调用方法 select dbo.procGetPY ('中國') Create FUNCTION dbo.procGetPY ( @str NVARCHAR(4000) ) /* select dbo. procGetPYFirstLetter ('中國') */ RETURNS NVARCHAR(4000) --WITH ENCRYPTION AS BEGIN DECLARE @WORD NCHAR(1),@PY NVARCHAR(4000)

sql 汉字按照首字母排序

SQL mysql 我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order by关键字正确排序. 经过网上查找,网上的办法大多是针对使用utf8字符集的数据库,主要的方法有: 1)直接转换字段为gbk,数据表某字段client_name的字符编码是utf8_general_ci; 比如: SELECT  *  FROM  `client_info_msg

MySQL按照汉字的拼音排序、按照首字母分类

项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面添加ORDER BY name ASC,查询结果将按照姓氏的升序排序:如果存储姓名的字段采用的是utf8字符集,需要在排序的时候对字段进行转码,对应的代码是ORD

oracle 汉字转拼音

oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等) 效果如下: Oracle 字符集 GBK 没有问题 , UTF -8 需要修改一下 Sql代码 --oracle汉字转拼音 PACKAGE --1.获得全拼  www.2cto.com SELECT GETHZPY.GETHZFULLPY('汉字') FROM DUAL; 结果 : HanZi --2.拼音首字母 SELECT GETHZPY.GETHZPYCAP('汉字') FROM DUAL; 结果 : HZ --3.拼音截取等 S

汉字转拼音 oracle方式 [转]

oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等) 效果如下: Oracle 字符集 GBK 没有问题 , UTF -8 需要修改一下 Sql代码 --oracle汉字转拼音 PACKAGE --1.获得全拼 SELECT GETHZPY.GETHZFULLPY('汉字') FROM DUAL; 结果 : HanZi --2.拼音首字母 SELECT GETHZPY.GETHZPYCAP('汉字') FROM DUAL; 结果 : HZ --3.拼音截取等 SELECT GETHZPY.

PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转

ChineseUtil 下载地址:https://github.com/Yurunsoft/ChineseUtil PHP 中文工具类,支持汉字转拼音.拼音分词.简繁互转. PHP Chinese Tool class, support Chinese pinyin, pinyin participle, simplified and traditional conversion 目前本类库拥有的三个功能,都是在实际开发过程中整理出来的.这次使用的数据不同于以前我开源过汉字转拼音和简繁互转,数据

TP5 按照汉字的拼音排序

业务需求:接口返回一个列表,但是这个列表要求按一定的条件排序,条件如下: 1,某字段(field1)为null的排前面 2,某字段(field2)为null的排前面 3,姓名(field3)按照汉字的拼音排序 4,某字段(field4)按照ID倒序排序 乍一听有点复杂,其他的不多说,这篇文章主要讲怎么在TP5里实现按照汉字的拼音排序 多字段排序这里要介绍到TP5 一个类 想了解的可以参考这篇文章<TP5多字段排序> 查阅了资料,网上千篇一律,总结了两点: 1,如果存储姓名的字段采用的是GBK字