USE [StockManageSystemV2]
GO
/****** Object: UserDefinedFunction [dbo].[PinYin] Script Date: 2016-08-07 11:19:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[PinYin] ( @STR NVARCHAR(4000) )
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @INTLEN INT;
DECLARE @STRRET NVARCHAR(4000);
DECLARE @TEMP NVARCHAR(100);
SET @INTLEN = LEN(@STR);
SET @STRRET = '';
WHILE @INTLEN > 0
BEGIN
SET @TEMP = '';
SELECT @TEMP = CASE WHEN SUBSTRING(@STR, @INTLEN, 1) >= '帀' THEN 'Z'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '丫' THEN 'Y'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '夕' THEN 'X'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '屲' THEN 'W'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '他' THEN 'T'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '仨' THEN 'S'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '呥' THEN 'R'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '七' THEN 'Q'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '妑' THEN 'P'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '噢' THEN 'O'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '拏' THEN 'N'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '嘸' THEN 'M'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '垃' THEN 'L'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '咔' THEN 'K'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '丌' THEN 'J'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '铪' THEN 'H'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '旮' THEN 'G'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '发' THEN 'F'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '妸' THEN 'E'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '咑' THEN 'D'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '嚓' THEN 'C'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '八' THEN 'B'
WHEN SUBSTRING(@STR, @INTLEN, 1) >= '吖' THEN 'A'
ELSE RTRIM(LTRIM(SUBSTRING(@STR, @INTLEN, 1)))
END;
--对于汉字特殊字符,不生成拼音码
IF ( ASCII(@TEMP) > 127 )
SET @TEMP = '';
--对于英文中小括号,不生成拼音码
IF @TEMP = '('
OR @TEMP = ')'
SET @TEMP = '';
SELECT @STRRET = @TEMP + @STRRET;
SET @INTLEN = @INTLEN - 1;
END;
RETURN @STRRET;
END;