当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 取得拼音字头的存储过程

MSSQL
SQL Server里面的时间变更周期
在SQL中设置允许同时连接的用户数
Web数据库中间件技术
在SQL数据库中得到重复次数最多的记录
Proxy Server和SQL Server在上数据库的安全复制
在各种数据库中如何限制检索行数?
如何在Oracle 中实现类似自动增加 ID 的功能?
SQL中代替Like语句的另一种写法
游标操作时进行Update应注意的一个问题
SQL语句中的一些参数如何用变量来代替?
在SQL2000查询中使用XDR的例子
SQL Server 7.0 的数据迁移到MySQL上的一种方法
关于在 win2000 下安装 mysql 的一些问题!
讨论: SELECT TOP N 问题
全文本检索的应用(1)
全文本检索的应用(2)
全文本检索的应用(3)
谈谈sql查询的between
用SQL Server为Web浏览器提供图像(一)(转)
用SQL Server为Web浏览器提供图像(二)(转)

MSSQL 中的 取得拼音字头的存储过程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 108 ::
收藏到网摘: n/a

 

-- =============================================
-- Create scalar function (NWGetPYFirst)
-- =============================================
IF EXISTS (SELECT *
 FROM   sysobjects
 WHERE  name = N'NWGetPYFirst')
 DROP FUNCTION NWGetPYFirst
GO

CREATE FUNCTION NWGetPYFirst
(@str varchar(500) = '')
RETURNS varchar(500)
AS
BEGIN
 Declare @strlen int,
  @return varchar(500),
  @ii int,
  @c char(1),
  @chn nchar(1)
 --//初始化变量
 Declare @pytable table(
 chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,
 py char(1) COLLATE Chinese_PRC_CS_AS NULL,
 PRIMARY KEY (chn)
   )
 insert into @pytable values('吖', 'A')
 insert into @pytable values('八', 'B')
 insert into @pytable values('嚓', 'C')
 insert into @pytable values('咑', 'D')
 insert into @pytable values('妸', 'E')
 insert into @pytable values('发', 'F')
 insert into @pytable values('旮', 'G')
 insert into @pytable values('铪', 'H')
 insert into @pytable values('丌', 'I')
 --insert into @pytable values('丌', 'J')
 insert into @pytable values('咔', 'K')
 insert into @pytable values('垃', 'L')
 insert into @pytable values('嘸', 'M')
 insert into @pytable values('拏', 'N')
 insert into @pytable values('噢', 'O')
 insert into @pytable values('妑', 'P')
 insert into @pytable values('七', 'Q')
 insert into @pytable values('呥', 'R')
 insert into @pytable values('仨', 'S')
 insert into @pytable values('他', 'T')
 insert into @pytable values('屲', 'U')
 --insert into @pytable values('屲', 'V')
 --insert into @pytable values('屲', 'W')
 insert into @pytable values('夕', 'X')
 insert into @pytable values('丫', 'Y')
 insert into @pytable values('帀', 'Z')

 select @strlen = len(@str), @return = '', @ii = 0
 --//循环整个字符串,用拼音的首字母替换汉字
 while @ii < @strlen
 begin
  select @ii = @ii + 1, @chn = substring(@str, @ii, 1)
  if @chn > 'z' --//检索输入的字符串中有中文字符
   SELECT @c = max(py)
   FROM @pytable
   where chn <= @chn
  else
   set @c=@chn
 
  set @return=@return+@c
 end
 return @return
END
GO

-- =============================================
-- Example to execute function
-- =============================================
SELECT dbo.NWGetPYFirst('梦想国度'), dbo.NWGetPYFirst('noctwolf分享源码'), dbo.NWGetPYFirst('')
GO