SQL Server 字段提取拼音首字母

php中文网
发布: 2016-06-07 15:08:30
原创
1694人浏览过

目前工作中遇到一个情况,需要将SQL Server中的一个 字段 提取 拼音 的首 字母 , 字段 由汉字、英文、数字以及-构成,百度了一堆,找到如下方法,记录一下,以备后用! 首先建立一个函数 -- 生成 拼音 首码 CREATE function fn_GetPy( @str nvarchar ( 4000

目前工作中遇到一个情况,需要将sql server中的一个字段提取拼音的首字母字段由汉字、英文、数字以及“-”构成,百度了一堆,找到如下方法,记录一下,以备后用!

  首先建立一个函数

<span >--</span><span >生成<strong>拼音</strong>首码  </span>
  <span >CREATE</span>  <span >function</span>  fn_GetPy(<span >@str</span>  <span >nvarchar</span>(<span >4000</span><span >))  
  </span><span >returns</span>  <span >nvarchar</span>(<span >4000</span><span >)  
  </span><span >--</span><span >WITH  ENCRYPTION  </span>
  <span >as</span>  
  <span >begin</span>  
  <span >declare</span>  <span >@intLen</span> <span >int</span>  
  <span >declare</span>  <span >@strRet</span> <span >nvarchar</span>(<span >4000</span><span >)  
  </span><span >declare</span>  <span >@temp</span>  <span >nvarchar</span>(<span >100</span><span >)  
  </span><span >set</span>  <span >@intLen</span>  <span >=</span>  <span >len</span>(<span >@str</span><span >)  
  </span><span >set</span>  <span >@strRet</span>  <span >=</span>  <span >''</span>  
  <span >while</span>  <span >@intLen</span>  <span >></span>  <span >0</span>  
  <span >begin</span>  
  <span >set</span>  <span >@temp</span>  <span >=</span>  <span >''</span>  
  <span >select</span>  <span >@temp</span>  <span >=</span>  <span >case</span>    
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >帀</span><span >'</span>  <span >then</span>  <span >'</span><span >Z</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >丫</span><span >'</span>  <span >then</span>  <span >'</span><span >Y</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >夕</span><span >'</span>  <span >then</span>  <span >'</span><span >X</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >屲</span><span >'</span>  <span >then</span>  <span >'</span><span >W</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >他</span><span >'</span>  <span >then</span>  <span >'</span><span >T</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >仨</span><span >'</span>  <span >then</span>  <span >'</span><span >S</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >呥</span><span >'</span>  <span >then</span>  <span >'</span><span >R</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >七</span><span >'</span>  <span >then</span>  <span >'</span><span >Q</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >妑</span><span >'</span>  <span >then</span>  <span >'</span><span >P</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >噢</span><span >'</span>  <span >then</span>  <span >'</span><span >O</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >拏</span><span >'</span>  <span >then</span>  <span >'</span><span >N</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >嘸</span><span >'</span>  <span >then</span>  <span >'</span><span >M</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >垃</span><span >'</span>  <span >then</span>  <span >'</span><span >L</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >咔</span><span >'</span>  <span >then</span>  <span >'</span><span >K</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >丌</span><span >'</span>  <span >then</span>    <span >'</span><span >J</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >铪</span><span >'</span>  <span >then</span>  <span >'</span><span >H</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >旮</span><span >'</span>  <span >then</span>  <span >'</span><span >G</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >发</span><span >'</span>  <span >then</span>  <span >'</span><span >F</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >妸</span><span >'</span>  <span >then</span>  <span >'</span><span >E</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >咑</span><span >'</span>  <span >then</span>  <span >'</span><span >D</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >嚓</span><span >'</span>  <span >then</span>  <span >'</span><span >C</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >八</span><span >'</span>  <span >then</span>  <span >'</span><span >B</span><span >'</span>  
  <span >when</span>  <span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span>)  <span >>=</span>  <span >'</span><span >吖</span><span >'</span>  <span >then</span>  <span >'</span><span >A</span><span >'</span>  
  <span >else</span>  <span >rtrim</span>(<span >ltrim</span>(<span >substring</span>(<span >@str</span>,<span >@intLen</span>,<span >1</span><span >)))  
  </span><span >end</span>  
  <span >--</span><span >对于汉字特殊字符,不生成<strong>拼音</strong>码  </span>
  <span >if</span>  (<span >ascii</span>(<span >@temp</span>)<span >></span><span >127</span>)  <span >set</span>  <span >@temp</span>  <span >=</span>  <span >''</span>  
  <span >--</span><span >对于英文中小括号,不生成<strong>拼音</strong>码  </span>
  <span >if</span>  <span >@temp</span>  <span >=</span>  <span >'</span><span >(</span><span >'</span>  <span >or</span>  <span >@temp</span>  <span >=</span>  <span >'</span><span >)</span><span >'</span>  <span >set</span>  <span >@temp</span>  <span >=</span>  <span >''</span>  
  <span >select</span>  <span >@strRet</span>  <span >=</span>  <span >@temp</span>  <span >+</span>  <span >@strRet</span>  
  <span >set</span>  <span >@intLen</span>  <span >=</span>  <span >@intLen</span>  <span >-</span>  <span >1</span>  
  <span >end</span>  
  <span >return</span>  <span >lower</span>(<span >@strRet</span><span >)  
  </span><span >end</span> 
登录后复制

执行语句

<span >SELECT</span>    需转换中文<strong>字段</strong>, dbo.fn_GetPy(中文<strong>字段</strong>) <span >AS</span><span > 列别名
</span><span >FROM</span>        表名称
登录后复制

 

php获取汉字的拼音类(全部与首字母)
php获取汉字的拼音类(全部与首字母)

php获取汉字的拼音类(全部与首字母)

php获取汉字的拼音类(全部与首字母) 163
查看详情 php获取汉字的拼音类(全部与首字母)

 感谢:Luckeryin

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号