中文助记符号生成函数的编写(plpgsql)

简介: 中文助记符号生成函数的编写(plpgsql)

在应用软件中,一些基础资料的中文内容在输入时需要使用助记符号(拼音缩写)来帮助搜索和参照。那么怎么生成助记符号也是要处理的一个问题。在后台建立一个表,把计算好的助记符号存起来,就是按这个字段值来查询了。

一、汉字及拼音首字母存储到表中

CREATE TABLE IF NOT EXISTS public.x9_gnzjfh
(
    wz character varying(8) COLLATE pg_catalog."default" NOT NULL DEFAULT ''::bpchar,
    py character varying(8) COLLATE pg_catalog."default" NOT NULL DEFAULT ''::bpchar,
    CONSTRAINT x9_gnzjfh_pkey PRIMARY KEY (wz)
)

这里面的内容可以通过区位码等方法导入(看具体语言支持情况)。

二、检索代码

一个函数。

CREATE OR REPLACE FUNCTION public.x9_zjfh(
  str character varying)
    RETURNS character varying
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
AS $BODY$
-- Description: 助记符号 
-- SELECT X9_ZJFH('华岳软件126');
DECLARE
  s1 char(1);
   s2 char(1);
  lzf INT;
   l1 INT;
  s3 varchar(100);
BEGIN
   lzf:=length($1);
   l1:=1;
   s3:='';
  WHILE l1 <= lzf LOOP
    s1:=substring($1,l1,1);
    l1:=l1 + 1;
    s2:='';
    SELECT py INTO s2 FROM x9_gnzjfh WHERE wz = s1;
    IF NOT s2 IS NULL THEN
      s3:=s3 || s2;
      CONTINUE;
    END IF;
  END LOOP;
  RETURN s3;
END;
$BODY$;

三、执行检索

SELECT X9_ZJFH('CSDN程序员技术社区')

结果:

CXYJSSQ

基础非中文部分被去掉。

四、改进

这样处理速度并不快,有更好的方法吗?

我现在这个表收录了6721个汉字,有需要可以QQ我。

相关文章
|
6月前
|
Python
Python将字符串拆成单字的函数代码设计
要想将字符串拆成单字,在Python中有一个非常简单的方法,一行代码就可以搞定了。那就是将字符串转换成列表list即可。这个过程可以使用内置的list()函数。不过,如果是要将英文的拆分为单个单词,那么这种方法就行不通了,因为该函数会将英文单词逐个拆分为字母,如果是这种情况,
85 2
|
6月前
|
Python
用Python优雅地写出数学表达式的LaTeX代码
用Python优雅地写出数学表达式的LaTeX代码
270 1
用Python优雅地写出数学表达式的LaTeX代码
|
6月前
|
算法
【算法】 Prolog的基本语法
【算法】 Prolog的基本语法
71 0
|
存储 JavaScript 前端开发
JavaScript基础(第一部分 -- 简介、注释、输入输出、变量、数据类型、运算符、流程控制)(二)
JavaScript基础(第一部分 -- 简介、注释、输入输出、变量、数据类型、运算符、流程控制)(二)
|
JavaScript 前端开发
JavaScript(一)基础——简介,使用,输出,语句,关键词,运算符
1. JavaScript对网页行为进行编程 2. JavaScript 能够改变 HTML 内容 ```css getElementById() 是多个 JavaScript HTML 方法之一
127 0
JavaScript(一)基础——简介,使用,输出,语句,关键词,运算符
|
JavaScript 前端开发 Shell
开发中切忌使用的JavaScript语句 —— with语句 和 eval语句
开发中切忌使用的JavaScript语句 —— with语句 和 eval语句
155 0
|
Python
Python 自写函数内容实现大小写转换(含详细注释解析)
Python 自写函数内容实现大小写转换(含详细注释解析)
408 0
Python 自写函数内容实现大小写转换(含详细注释解析)
|
存储 JavaScript 前端开发
web前端学习(三十二)——JavaScript语法、语句输出及注释的相关设置
web前端学习(三十二)——JavaScript语法、语句输出及注释的相关设置
web前端学习(三十二)——JavaScript语法、语句输出及注释的相关设置
|
Python
猪行天下之Python基础——2.2 标识符,基础函数,行与缩进,空语句
内容简述: 1、标识符 2、print()打印输出函数 3、input()输入函数 4、dir()函数 5、help()函数 6、type()函数 & isinstance()函数 7、行与缩进 8、pass空语句
137 0
利用 PLpgSQL 编写UDF练习题
利用 PLpgSQL 编写UDF练习题
104 0