基于Microsoft SQL Server 的标量值函数fun_GetPy,借鉴其他优秀的博主文章,此处贴出源码,以及使用方法

1、打开新建查询,贴如下代码,F5

/****** Object:  UserDefinedFunction [dbo].[fun_GetPy]    Script Date: 11/01/2019 11:07:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO CREATE FUNCTION [dbo].[fun_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
GO

2、执行后,刷新数据库,在可编程性下标量值函数中会看到此函数,安装了SQL Prompt的小伙伴们,需要Refresh Suggestions。

注:提取码为 s4ka 。

SQL Prompt 提供的版本完美兼容数据库2008,2014,如不兼容自行百度下载

3、使用方法

SELECT *FROM [TableName] WHERE 1=1 AND (dbo.fun_GetPy([字段]) LIKE '%"+[参数]+"%' OR [字段] LIKE '%"+参数+"%')"

本文个人收藏使用,如有侵权,请联系作者删除!

SQL小技巧(一)拼音首字母的模糊查询的更多相关文章

  1. C#&Sql获取中文字符拼音首字母的方法

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

  2. sql获取汉字的拼音首字母

    if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN' ...

  3. SQL 汉字转换成拼音首字母 首字母查

    -- ============================================= -- 功能:汉字转换成拼音首字母 首字母查 -- ========================== ...

  4. sql获取汉字的拼音首字母的函数

    ql获取汉字的拼音首字母   if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...

  5. SQL Server 字段提取拼音首字母

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

  6. sql语句 汉字转拼音首字母

    (1)------------------------------------------------------------------------------------------------- ...

  7. sql语句按照汉字拼音首字母排序

    oracle : 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序SCHINESE_STR ...

  8. sql语句-按照汉字拼音首字母排序

    在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序SCHINESE_STROKE_M 按照 ...

  9. sql中文字符串获取拼音首字母

    SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO )) ) as begin ),) set @PY='' begin ) --如果非汉字字符,返回原字 ...

随机推荐

  1. Nginx 核心配置-作为下载服务器配置

    Nginx 核心配置-作为下载服务器配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.无限速版本的下载服务器 1>.查看主配置文件 [root@node101.yinz ...

  2. POJ 3155Hard Life(最大密度子图)

    论文出处:最小割模型在信息学竞赛终的应用 #include <iostream> #include <cstdio> #include <cstring> #inc ...

  3. flask实战-个人博客-电子邮件支持

    电子邮件支持 因为博客要支持评论,所以我们需要在文章有了新评论后发邮件通知管理员.而且,当管理员回复了读者的评论后,也需要发送邮件提醒读者. 为了方便读者使用示例程序,personalBlog中仍然使 ...

  4. 微信小程序中的事件

    事件 说明 bindtap bindload 当图片载入完毕时触发,event.detail = {height, width} bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒 ...

  5. Educational Codeforces Round 78 (Rated for Div. 2) D. Segment Tree

    链接: https://codeforces.com/contest/1278/problem/D 题意: As the name of the task implies, you are asked ...

  6. java类uuid源码分析

    通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份.UUID的目的,是让分散式系统 ...

  7. chrome-解决该扩展程序未列在 Chrome 网上应用店中

    1.win10添加策略组 复制以下内容到.bat文件中,右键-以管理员身份运行,即可添加策略组 pushd "%~dp0" dir /b C:\Windows\servicing\ ...

  8. HBase快照迁移数据失败原因及解决办法

    目录 目录 1 1. 背景 1 2. 环境 1 3. 执行语句 1 4. 问题描述 1 5. 错误信息 2 6. 问题原因 3 7. 解决办法 4 1. 背景 机房裁撤,需将源HBase集群的数据迁移 ...

  9. 使用PostMan进行压力/性能测试

    1. 2. 3. 4.查看结果/导出结果

  10. centos虚拟机扩展磁盘空间(经历无数坑,血一样总结,史上最全)

    第一步 在vmware中将虚拟机关机后,鼠标右键设置,直接点击扩展加自己想要扩展的数量就可以了,这个比较简单不多说. 2 第二步 设置后进系统查看空间大小变化,实际并没有什么变化,我用的命令是df - ...