USE [testDB]
GO
/****** Object: UserDefinedFunction [dbo].[f_GetPy] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create function [dbo].[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,1)+@re,@strlen=@strlen-1
end
return(@re)
end
---测试数据--- if object_id('[pactinfo]') is not null drop table [pactinfo] go create table [pactinfo]([ID] int,[pactname] varchar(4)) insert [pactinfo] select 1,'正常' union all select 2,'中国' union all select 3,'做饭' union all select 4,'加发' ---查询--- select * from [pactinfo] where dbo.f_GetPy(pactname) like 'Zg%' ---结果--- ID pactname ----------- -------- 1 正常 2 中国 3 做饭
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。