文档章节

sql中实现汉字的拼音首字母查询

 骑着小猪看夕阳
发布于 2016/06/20 14:39
字数 271
阅读 58
收藏 0

先在数据库中加入获取首字母的方法

create function   f_GetPy(@str   nvarchar(4000)) 
returns   nvarchar(4000) 
as 
begin 
declare   @strlen   int,@re   nvarchar(4000) 
declare   @t   table(chr   nchar(1)   collate   Chinese_PRC_CI_AS,letter   nchar(1)) 
insert   into   @t(chr,letter) 
    select   '吖 ', 'A '   union   all   select   '八 ', 'B '   union   all 
    select   '嚓 ', 'C '   union   all   select   '咑 ', 'D '   union   all 
    select   '妸 ', 'E '   union   all   select   '发 ', 'F '   union   all 
    select   '旮 ', 'G '   union   all   select   '铪 ', 'H '   union   all 
    select   '丌 ', 'J '   union   all   select   '咔 ', 'K '   union   all 
    select   '垃 ', 'L '   union   all   select   '呒 ', 'M '   union   all 
    select   '拏 ', 'N '   union   all   select   '噢 ', 'O '   union   all 
    select   '妑 ', 'P '   union   all   select   '七 ', 'Q '   union   all 
    select   '呥 ', 'R '   union   all   select   '仨 ', 'S '   union   all 
    select   '他 ', 'T '   union   all   select   '屲 ', 'W '   union   all 
    select   '夕 ', 'X '   union   all   select   '丫 ', 'Y '   union   all 
    select   '帀 ', 'Z ' 
    select   @strlen=len(@str),@re= ' ' 
    while   @strlen> 0 
    begin 
        select   top   1   @re=letter+@re,@strlen=@strlen-1 
            from   @t   a   where   chr <=substring(@str,@strlen,1) 
            order   by   chr   desc 
        if   @@rowcount=0 
            select   @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1 
    end 
    return(@re) 
end 

接着在查询的时候调用定义好的方法

---查询---

select * from  表名 where left(dbo.f_GetPy(要查询的字段),1)='A'

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 6
码字总数 2215
作品 0
广州
程序员
引用 使用Java获得汉字的拼音首字母

引用 恐龙007 的 使用Java获得汉字的拼音首字母 由于工作中需要从汉字中提取其拼音首字母,为了偷懒^_^....本人写了以下类实现了自动将汉字转化为其拼音首字母. 可以直接提取以下类中的方法,...

junsun
2010/10/16
0
0
mysql --中文转汉语拼音,取首字母

直接上需求 1.地点表如下 原数据库表是没有FIRSTLETTER这个字段的。 需求:在原表的基础上增加一列,要求该列是字段LOCATIONNAME拼音的首字母。 直接上SQL Select locationid,locationname ...

求是科技
2016/03/01
86
0
Pinyin4j 的基本用法

1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用 的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“c...

鉴客
2011/09/11
8.6K
8
关于中文拼音模糊查找

我的问题:从数据库中查找“李泽成”,数据库中的拼音字段:lizecheng#lizecheng#lzc 以下方式均能查询到: 1. 姓名全拼(LiZeCheng) 2. 相邻字符拼音;(LZeCheng, LiZCheng, LiZeC, LZCheng,...

xiangmao
2012/08/17
1K
4
IOS数组按中文关键字以字母序排序

IOS项目中会用到对通讯录的联系人或是会员按姓名为关键字排序,因为NSArray并不直接支持对汉字的排序,这就要通过将汉字转换成拼音完成按A~Z的排序,这看起来是个头疼的问题,因为牵扯到汉字...

长平狐
2012/11/01
531
0

没有更多内容

加载失败,请刷新页面

加载更多

37. Sudoku Solver

Description tags: backtrack,hash table difficulty: hard Write a program to solve a Sudoku puzzle by filling the empty cells.A sudoku solution must satisfy all of the following......

52iSilence7
30分钟前
0
0
磁盘格式化、磁盘挂载和手动增加swap空间

9月26日任务 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间 4.5/4.6 磁盘格式化 #查看Linux所支持的文件格式 [root@zgxlinux-01 ~]# cat /etc/filesystems xfs...

zgxlinux
40分钟前
0
0
intellij idea中,鼠标拖动选择的是一块矩形区域

点“编辑”-->“列选择模式” 或者 按 Shift+Alt+Insert

hengbao5
42分钟前
0
0
中文地址

火力全開
57分钟前
0
0
71:循环之for、while、break、continue、exit

1、for循环语法: for 变量名 in 条件;do......;done 1:案例1:求1加到100的和: [root@localhost_02 for]# vim for1.sh #!/bin/bashsum=0for i in `seq 1 100`do sum=$[$sum...

芬野de博客
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部