通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母。

效果1,获取拼音简码:

效果2,获取姓名首字母:

创建函数:

/* 获取拼音简码函数 */

CREATE OR REPLACE FUNCTION GET_PYJM (P_NAME IN VARCHAR2)

RETURN VARCHAR2

AS

V_COMPARE VARCHAR2 (100);

V_RETURN VARCHAR2 (4000);

BEGIN

DECLARE

FUNCTION F_NLSSORT (P_WORD IN VARCHAR2)

RETURN VARCHAR2

AS

BEGIN

RETURN NLSSORT (P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');

END;

BEGIN

FOR I IN 1 .. LENGTH (P_NAME)

LOOP

V_COMPARE := F_NLSSORT (SUBSTR (P_NAME, I, 1));

IF V_COMPARE >= F_NLSSORT ('吖')

AND V_COMPARE <= F_NLSSORT ('驁')

THEN

V_RETURN := V_RETURN || 'A';

ELSIF V_COMPARE >= F_NLSSORT ('八')

AND V_COMPARE <= F_NLSSORT ('簿')

THEN

V_RETURN := V_RETURN || 'B';

ELSIF V_COMPARE >= F_NLSSORT ('嚓')

AND V_COMPARE <= F_NLSSORT ('錯')

THEN

V_RETURN := V_RETURN || 'C';

ELSIF V_COMPARE >= F_NLSSORT ('咑')

AND V_COMPARE <= F_NLSSORT ('鵽')

THEN

V_RETURN := V_RETURN || 'D';

ELSIF V_COMPARE >= F_NLSSORT ('妸')

AND V_COMPARE <= F_NLSSORT ('樲')

THEN

V_RETURN := V_RETURN || 'E';

ELSIF V_COMPARE >= F_NLSSORT ('发')

AND V_COMPARE <= F_NLSSORT ('猤')

THEN

V_RETURN := V_RETURN || 'F';

ELSIF V_COMPARE >= F_NLSSORT ('旮')

AND V_COMPARE <= F_NLSSORT ('腂')

THEN

V_RETURN := V_RETURN || 'G';

ELSIF V_COMPARE >= F_NLSSORT ('妎')

AND V_COMPARE <= F_NLSSORT ('夻')

THEN

V_RETURN := V_RETURN || 'H';

ELSIF V_COMPARE >= F_NLSSORT ('丌')

AND V_COMPARE <= F_NLSSORT ('攈')

THEN

V_RETURN := V_RETURN || 'J';

ELSIF V_COMPARE >= F_NLSSORT ('咔')

AND V_COMPARE <= F_NLSSORT ('穒')

THEN

V_RETURN := V_RETURN || 'K';

ELSIF V_COMPARE >= F_NLSSORT ('垃')

AND V_COMPARE <= F_NLSSORT ('擽')

THEN

V_RETURN := V_RETURN || 'L';

ELSIF V_COMPARE >= F_NLSSORT ('嘸')

AND V_COMPARE <= F_NLSSORT ('椧')

THEN

V_RETURN := V_RETURN || 'M';

ELSIF V_COMPARE >= F_NLSSORT ('拏')

AND V_COMPARE <= F_NLSSORT ('瘧')

THEN

V_RETURN := V_RETURN || 'N';

ELSIF V_COMPARE >= F_NLSSORT ('筽')

AND V_COMPARE <= F_NLSSORT ('漚')

THEN

V_RETURN := V_RETURN || 'O';

ELSIF V_COMPARE >= F_NLSSORT ('妑')

AND V_COMPARE <= F_NLSSORT ('曝')

THEN

V_RETURN := V_RETURN || 'P';

ELSIF V_COMPARE >= F_NLSSORT ('七')

AND V_COMPARE <= F_NLSSORT ('裠')

THEN

V_RETURN := V_RETURN || 'Q';

ELSIF V_COMPARE >= F_NLSSORT ('亽')

AND V_COMPARE <= F_NLSSORT ('鶸')

THEN

V_RETURN := V_RETURN || 'R';

ELSIF V_COMPARE >= F_NLSSORT ('仨')

AND V_COMPARE <= F_NLSSORT ('蜶')

THEN

V_RETURN := V_RETURN || 'S';

ELSIF V_COMPARE >= F_NLSSORT ('侤')

AND V_COMPARE <= F_NLSSORT ('籜')

THEN

V_RETURN := V_RETURN || 'T';

ELSIF V_COMPARE >= F_NLSSORT ('屲')

AND V_COMPARE <= F_NLSSORT ('鶩')

THEN

V_RETURN := V_RETURN || 'W';

ELSIF V_COMPARE >= F_NLSSORT ('夕')

AND V_COMPARE <= F_NLSSORT ('鑂')

THEN

V_RETURN := V_RETURN || 'X';

ELSIF V_COMPARE >= F_NLSSORT ('丫')

AND V_COMPARE <= F_NLSSORT ('韻')

THEN

V_RETURN := V_RETURN || 'Y';

ELSIF V_COMPARE >= F_NLSSORT ('帀')

AND V_COMPARE <= F_NLSSORT ('咗')

THEN

V_RETURN := V_RETURN || 'Z';

END IF;

END LOOP;

RETURN V_RETURN;

END;

END;

取字符串拼音首字母(js)

//取字符串拼音首字母 function makePy(str) { if (typeof(str) != "string") throw new Error(-1, " ...

php 获取中文字符拼音首字母

//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{}); }); ...

php获取中文字符拼音首字母

//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){ return ''; } $fchar = ord($str{0}) ...

js 获取中文的拼音首字母

es6 + 模块化封装 "use strict"; module.exports = { //参数,中文字符串 //返回值:拼音首字母串数组 makePy (str) { if ( ...

C&num;&amp&semi;Sql获取中文字符拼音首字母的方法

C#获取字符拼音首字母,可以存储在数据库中以备将来按字母搜索的需求. public static string GetAc(string s) { try { string temp = Servic ...

php 中文转拼音首字母问题

sqlserver取字符串拼音首字母

sqlserver 使用函数获取一个字符串的拼音首字母 create function dbo.fn_getpinyin ( @str nvarchar(max) ) returns nvarchar ...

SqlServer 汉字转换拼音首字母函数

CREATE function [dbo].[Func_GetPY](@str nvarchar(4000))returns nvarchar(4000)asbegin set @str=RTRIM( ...

mysql 中将汉字&lpar;中文&rpar;按照拼音首字母排序

因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY ...

随机推荐

&lbrack;HTML&sol;HTML5&rsqb;2 CSS样式表设置

2.1  在HTML文件中设置样式表 当前HTML"规则"指出:HTML仅用于标识页面的内容,应该使用样式表来定义内容的呈现样式.这不仅使Web页面对于所有用户(无论采用什么浏览器 ...

Bootstrap~大叔封装的弹层

回到目录 对于Bootstrap的弹层,插件有很多,今天主要用的是它自带的功能,通过bootstrap提供的模式窗口来实现的,而大叔主要对使用方法进行了封装,开发人员可以自己动态传入弹层的HTML内容 ...

ubuntu 状态栏不显示时间

有时候我们会看到我们电脑的状态栏那里并没有显示时间,一个原因是日期时间指示器没有工作,另一个可能的原因是用户禁用了时间显示. 方法一: 首先我们用下面的命令来确认一下是否安装了日期时间指示器: sud ...

HDU 2159 FATE (DP 二维费用背包)

题目链接 题意 : 中文题不详述. 思路 : 二维背包,dp[i][h]表示当前忍耐值为i的情况下,杀了h个怪得到的最大经验值,状态转移方程: dp[i][h] = max(dp[i][h],dp[i ...

【Android进阶】Android调用WebService的实现

最近想自己搞搞服务器,就从最简单的webservice开始吧 先上效果图 项目结构 开始贴代码,注释都有,有问题的请留言 MainActivity.java package com.example.w ...

oracle预定义角色

角色是相关权限的集合,使用角色能够简化权限的管理.简而言之就是oracle可以事先把一系列权限集中在一起(角色),打包赋予给用户,那么用户就具有了角色的一系列权限. oracle预定义角色有25种,它 ...

iOS学习——核心动画

iOS学习——核心动画 1.什么是核心动画 Core Animation(核心动画)是一组功能强大.效果华丽的动画API,无论在iOS系统或者在你开发的App中,都有大量应用.核心动画所在的位置如下图 ...

Hive快捷查询&colon;不启用Mapreduce job启用Fetch task

启用MapReduce Job是会消耗系统开销的.对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似SELECT

from

03&lowbar;java基础(三)之第一个程序与开发工具的安装

1.第一个Java程序 ① 找一个特定的放代码的地方    ② 新建一个文本文档 --> 改名 Hello.java        注意 : 必须先把文件的后缀名都显示出来     不同的操作系 ...

Bootstrap tab插件的使用

菜鸟教程链接:http://www.runoob/bootstrap/bootstrap-tab-plugin.html 1.例子

更多推荐

python提取首字母的函数_Oracle提取中文字符串拼音首字母函数