`
arfayr
  • 浏览: 26078 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

网上关于获取中文字符首字母的SQL函数

 
阅读更多

网上关于获取中文字符首字母的SQL函数

函数1:

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


函数2:

Create function fun_getPY
(
@str nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)

set @PY=''

while len(@str)>0
begin
set @word=left(@str,1)

--假如非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
then (
select top 1 PY
from
(
select 'A' as PY,N'驁' as word
union all select 'B',N'簿'
union all select 'C',N'錯'
union all select 'D',N'鵽'
union all select 'E',N'樲'
union all select 'F',N'鰒'
union all select 'G',N'腂'
union all select 'H',N'夻'
union all select 'J',N'攈'
union all select 'K',N'穒'
union all select 'L',N'鱳'
union all select 'M',N'旀'
union all select 'N',N'桛'
union all select 'O',N'漚'
union all select 'P',N'曝'
union all select 'Q',N'囕'
union all select 'R',N'鶸'
union all select 'S',N'蜶'
union all select 'T',N'籜'
union all select 'W',N'鶩'
union all select 'X',N'鑂'
union all select 'Y',N'韻'
union all select 'Z',N'咗'
) T
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC
)
else @word
end)
set @str=right(@str,len(@str)-1)
end

return @PY

end

分享到:
评论

相关推荐

    获取中文首字母sql函数

    获取中文首字母sql函数

    oracle获取汉字拼音和拼音首字母的功能函数

    在Oracle数据库中,处理汉字和拼音的场景时,有时我们需要获取汉字的拼音或者拼音首字母。这在构建中文搜索引擎、数据分析或报表展示等场景中非常有用。Oracle提供了一些内置的功能函数,可以用来实现这些需求。以下...

    数据库获取中文首字母自定义函数(字母查汉字模糊查询)

    标题“数据库获取中文首字母自定义函数(字母查汉字模糊查询)”指的是在数据库系统中定义一个函数,该函数能接受用户输入的英文首字母,然后返回所有以该首字母为拼音首字母的中文字段。这种功能对于具有大量中文...

    sql server汉字转化为拼音首字母函数

    输入汉字字符参数,返回汉字拼音的首字母!

    sql 函数——汉字首字母

    ### SQL函数:获取汉字首字母 在SQL编程中,处理非英文字符的需求...总结来说,`fun_getPY`是一个实用的SQL函数,可以帮助开发者快速获取中文字符串中每个汉字的拼音首字母,适用于各种需要处理中文字符串的应用场景。

    获得汉字字符串的首字母

    总的来说,实现"获得汉字字符串的首字母"这一功能需要对SQL查询语言有深入理解,包括联接操作、字符串函数以及可能的数据预处理。在数据库设计和优化方面也需要一定的技巧,以确保查询效率。同时,这也涉及到对汉字...

    取汉字拼音首字母的函数

    标题和描述中提到的“取汉字拼音首字母的函数”就是这样的一个功能,它能够帮助开发者快速地获取汉字串对应的拼音首字母。这种函数通常在中文文本处理的场景下被广泛应用。 首先,我们要理解汉字到拼音转换的基本...

    SQL汉字首字母

    描述部分提供了更详细的信息,指出该功能是通过一个SQL函数来实现的,其目标是将输入的中文字符串转换为其对应的拼音首字母串。此功能主要应用于数据库文档的处理,意味着它可能用于数据库内的数据清洗、格式化或...

    SQL 汉字转拼音首字母

    ### SQL汉字转拼音首字母知识点解析 #### 一、背景介绍 在数据库处理过程中,有...综上所述,通过自定义SQL函数的方式,我们可以灵活地实现汉字到拼音首字母的转换功能,这对于中文环境下的数据处理来说是非常有用的。

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 提供了 INITCAP() 函数,用于将字符串的首字母转换为大写。 示例:SELECT INITCAP('smith') FROM dual; -- 返回 Smith 10. 字符串查找函数 INSTR() Oracle Sql 提供了 INSTR() 函数,用于查找字符串中...

    SQL Server中获取多音字拼音首字母.pdf

    在 SQL Server 中,获取汉字的拼音首字母可以通过建立一个码表,也就是汉字与汉字首拼的对应表,但是这种方法要将所有汉字的汉字和首拼存到数据库,既费时又费力,且获取汉字首字符的效率也比较低。因此,需要一种...

    oracle批量修改汉字转拼音首字母的函数

    下面是一个简单的自定义PL/SQL函数示例,用于获取汉字的拼音首字母: ```sql CREATE OR REPLACE FUNCTION get_initials(p_chinese CHAR) RETURN VARCHAR2 AS p_ascii RAW(1); BEGIN p_ascii := UTL_I18N.STRING_...

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数 方案一(是方案二的包体方式)pinyin(拼音之间有空格) 方案二(较慢)常用中文字符转全拼音函数(有空格) 方案三(最优)完整简洁的Oracle获得汉字字符串拼音首字母...

    sql 按拼音首字母排序

    标题“SQL按拼音首字母排序”以及描述中的关键词“SQL按拼音排序”,指向了一种特殊的数据排序需求:在数据库中,针对包含中文字符的字段,按照中文拼音的首字母进行排序。这在处理大量含有中文名称、地点等信息的...

    取汉字拼音或首字母的PL/SQL存储过程

    本文将详细解析如何利用PL/SQL编写存储过程来获取汉字的拼音或首字母,主要针对Oracle 9i及以上版本。 首先,我们需要理解汉字转拼音的基本原理。在Oracle中,我们可以借助内置的UTL_I18N和UTL_RAW库来实现这一功能...

    postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字

    postgresql汉字转拼音首字母函数,用于批量生成助记码、拼音码,包含两万多个汉字。

    查询汉字首字母及全拼sql自定义方法

    标题中的"查询汉字首字母及全拼sql自定义方法"指的是创建自定义的SQL函数,用于获取汉字的首字母(通常是声母)以及其完整的拼音。这种方法对于没有内置拼音支持的数据库系统特别有用,例如MySQL、SQL Server或...

    DB2中创建一个汉字拼音首字母的SQL函数

    一般对于中文数据的索引,采用词组的首汉字拼音的首字母,在DB2中并没有提供相应的函数可以取得汉字拼音的首字母,我们可以利用数据库针对中文字符集的排序功能创建一个这样的函数。本文分析了这种函数的工作原理,...

    Oracle汉字拼音首字母函数

    对于非数字字符(通常是汉字),使用`F_NLSSORT`函数获取其拼音排序值,并根据该值映射到对应的拼音首字母: ```sql V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1)); IF V_COMPARE &gt;= F_NLSSORT('߹') AND V_...

    中文获取拼音的方法SQL函数

    - 若字符为中文,则调用`f_ch2py`函数获取对应的拼音并追加到结果字符串。 - 其他情况,跳过当前字符。 - 更新索引和控制变量:`@i = @i + 1, @L = @L + 1` 3. **返回结果**:返回处理后的拼音字符串。 ##### ...

Global site tag (gtag.js) - Google Analytics