表中有一列汉字,需要生成一列拼音码首字母,便于检索,求一个生成拼音码首字母的函数。谢谢!!!
试下这个
-- 1. 确保开启 plpython3u 语言支持 (如果已存在会提示,忽略即可)
CREATE LANGUAGE plpython3u;
– 2. 创建拼音首字母函数
CREATE OR REPLACE FUNCTION func_get_pinyin_initials(in_text TEXT)
RETURNS TEXT
AS $$
导入 pypinyin 库
from pypinyin import lazy_pinyin, Style
# 处理空值情况
if not in_text:
return ''
# 核心逻辑:获取拼音首字母
# style=Style.FIRST_LETTER 直接获取首字母
try:
initials = lazy_pinyin(in_text, style=Style.FIRST_LETTER)
# 将列表拼接成字符串,例如 \['z', 'g'\] -> 'zg'
return ''.join(initials)
except Exception as e:
# 如果出错(比如非中文字符),返回原文或空字符串
return in_text
$$ LANGUAGE plpython3u;