SQL小技巧(一)拼音首字母的模糊查询
基于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小技巧(一)拼音首字母的模糊查询的更多相关文章
- C#&Sql获取中文字符拼音首字母的方法
C#获取字符拼音首字母,可以存储在数据库中以备将来按字母搜索的需求. public static string GetAc(string s) { try { string temp = Servic ...
- sql获取汉字的拼音首字母
if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN' ...
- SQL 汉字转换成拼音首字母 首字母查
-- ============================================= -- 功能:汉字转换成拼音首字母 首字母查 -- ========================== ...
- sql获取汉字的拼音首字母的函数
ql获取汉字的拼音首字母 if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...
- SQL Server 字段提取拼音首字母
目前工作中遇到一个情况,需要将SQL Server中的一个字段提取拼音的首字母,字段由汉字.英文.数字以及“-”构成,百度了一堆,找到如下方法,记录一下,以备后用! 首先建立一个函数 --生成拼音首码 ...
- sql语句 汉字转拼音首字母
(1)------------------------------------------------------------------------------------------------- ...
- sql语句按照汉字拼音首字母排序
oracle : 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序SCHINESE_STR ...
- sql语句-按照汉字拼音首字母排序
在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序SCHINESE_STROKE_M 按照 ...
- sql中文字符串获取拼音首字母
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO )) ) as begin ),) set @PY='' begin ) --如果非汉字字符,返回原字 ...
随机推荐
- 【JavaScript】内部与外部引入方式
1.内部引入方式: script的type属性默认为"text/javascript",可以不写 <script type="text/javascript&quo ...
- USB总线驱动程序
USB主机控制器:UHCI OHCI EHCI UHCI:intel 低速(1.5Mbps)(USB1.1)/全速(12Mbps)(USB2.0,USB2.0又分为全速和高速)OHCI:microso ...
- PHP将图片转base64格式函数
base64的好处是什么?今天在跟小伙伴讨论这个问题,要是全站用Php把图片转为base64行不行? 1. 提升性能: 网页上的每一个图片,都是需要消耗一个 http 请求下载而来的, 图片的下载始终 ...
- 05-cmake语法-message()
输出错误 message(FATAL_ERROR " FATAL: In-source builds are not allowed. You should create a separat ...
- 前端js判空处理,js字符串判空,js数组判空
1.字符串 在 js 中,字符串为空会有这么几种形式,"",null,undefined,如果在已知变量为空串的情况下可以直接采用 if (string.length == 0) ...
- 使用Git Flow进行版本控制
重置 # force reset $ git flow init -f
- date命令的FORMAT中输入空格的几种方法
1.date +%Y-%m-%d\ (一个空格)%H:%M:%S 此命令中用了转义字符 \ ,将空格转义出来 2.date +%Y-%m-%d' '%H:%M:%S 此命令中的单引号内可以是一个或多 ...
- luogu_2480: 古代猪文
洛谷:2480古代猪文 题意描述: 给定两个整数\(N,G\),求$G^{\sum_{k|n}C_n^k} mod 999911659 $. 数据范围: \(1\leq N\leq 10^9,1\le ...
- 【BZOJ4722】由乃
[BZOJ4722]由乃 题面 bzoj 题解 考虑到区间长度为\(14\)时子集个数\(2^{14}>14\times 1000\),由抽屉原理,区间长度最多为\(13\)(长度大于这个值就一 ...
- 从最近的比赛学习CTR/CVR
https://zhuanlan.zhihu.com/p/35046241 包大人 深度学习炼丹劝退师 278 人赞同了该文章 从最近的比赛学习CTR/CVR 最近在玩kaggle的talking d ...