文档章节

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

 骑着小猪看夕阳
发布于 2016/06/20 14:39
字数 271
阅读 67
收藏 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
广州
程序员
私信 提问
mysql --中文转汉语拼音,取首字母

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

求是科技
2016/03/01
86
0
引用 使用Java获得汉字的拼音首字母

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

junsun
2010/10/16
0
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

没有更多内容

加载失败,请刷新页面

加载更多

探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
46分钟前
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0
PHP生成图片验证码

PHP生成图片验证码 /** * PHP生成图片验证码 * Class VerifyImage */class VerifyImage{ // 生成随机字串 private $verifyCode; // 图片对象 private $image; /**...

DrChenXX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部