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' 
		。
		。
		。
		。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 09:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 09:08:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 09:08:02       82 阅读
  4. Python语言-面向对象

    2024-03-28 09:08:02       91 阅读

热门阅读

  1. kafka-eagle 配置文件修改使用自带的数据库

    2024-03-28 09:08:02       38 阅读
  2. Mac电脑怎么配置ohpm的环境变量

    2024-03-28 09:08:02       39 阅读
  3. Day59| 503 下一个更大元素II 42 接雨水

    2024-03-28 09:08:02       44 阅读
  4. 用html画一个烟花特效

    2024-03-28 09:08:02       29 阅读
  5. maya安装笔记

    2024-03-28 09:08:02       43 阅读
  6. C语言和C++实现栈Stack的对比,有什么区别?

    2024-03-28 09:08:02       41 阅读