当前位置: 首页 > news >正文

SQLServer数据库使用Function实现根据字段内容的拼音首字母进行数据查询

实现SQL首字母查询分两步,第一步建Function,第二步引用新建的Function。

1. 首先需要自定义一个查询的Function,详细SQL如下:

ALTER function [dbo].[GetDataByPY](@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

2. 使用GetDataByPY进行数据查询,其中,SQL中的数字表示根据前几位字符串的首字母去匹配,后面的字符串就代表查询的首字母了,例如:

SELECT * FROM <font color=red>表名</font>
WHERE LEFT(dbo.FuncSysGetPY(<font color=red>字段名</font>), 1) = 'a' SELECT * FROM <font color=red>表名</font>
WHERE LEFT(dbo.FuncSysGetPY(<font color=red>字段名</font>), 2) = 'ab' SELECT * FROM <font color=red>表名</font>
WHERE LEFT(dbo.FuncSysGetPY(<font color=red>字段名</font>), 3) = 'abc' 。。。。
http://www.lryc.cn/news/328848.html

相关文章:

  • Linux——信号概念与信号产生方式
  • 赋值语句还能当判断条件?涨芝士了!
  • 数据结构 - 算法效率|时间复杂度|空间复杂度
  • 接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送
  • 『Apisix安全篇』探索Apache APISIX身份认证插件:从基础到实战
  • 【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了
  • 『大模型笔记』常见的分布式并行策略(分布式训练)
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化
  • 3D数据格式导出工具HOOPS Publish如何生成高质量3D PDF?
  • 【springboot】闲话 springboot 的几种异步机制 及 长轮询的概念和简单实现
  • Mysql---安全值守常用语句
  • containerd快速安装指南
  • Javascript - 正则表达式相关的一些基础的范例
  • JUC:线程活跃性(死锁、活锁、饥饿)
  • RGB到灰度图像的转换原理及例程
  • PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!
  • 创建数据库与表单以及管理表单和数据
  • Milvus+ATTU环境搭建
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果
  • Chrome浏览器 安装Vue插件vue-devtools
  • 相册清理大师-手机重复照片整理、垃圾清理软件
  • 【GitLab】Ubuntu 22.04 快速安装 GitLab
  • Linux重点思考(下)--shell脚本使用以及内核开发
  • 2024世界技能大赛某省选拔赛“网络安全项目”B模块--应急响应解析
  • 苹果与百度合作,将在iPhone 16中使用生成式AI
  • java中的单例模式
  • pytorch笔记篇:pandas之数据预处理(更新中)
  • 【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案
  • 数据分析之POWER Piovt透视表分析
  • 机器人寻路算法双向A*(Bidirectional A*)算法的实现C++、Python、Matlab语言