日期:2014-05-18  浏览次数:20855 次

求一sql语句,如何根据单词首拼音字母更新字段?
现有一表内容如下,字段A如下,现要更新字段B,取A的首拼音字母,如果直接按字段A排序是可以按首拼音字母排列的,那我如何提取出来呢?
我希望的A和B如下
A           B
一         Y
二         E
三         S
四         S
五         W
六         L
七         Q
八         B

------解决方案--------------------
--2. 汉字首字母查询处理用户定义函数
CREATE FUNCTION f_GetPY(@str nvarchar(4000))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @py TABLE(
ch char(1),
hz1 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,
hz2 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)
INSERT @py SELECT 'A ',N '吖 ',N '鏊 '
UNION ALL SELECT 'B ',N '八 ',N '簿 '
UNION ALL SELECT 'C ',N '嚓 ',N '错 '
UNION ALL SELECT 'D ',N '哒 ',N '跺 '
UNION ALL SELECT 'E ',N '屙 ',N '贰 '
UNION ALL SELECT 'F ',N '发 ',N '馥 '
UNION ALL SELECT 'G ',N '旮 ',N '过 '
UNION ALL SELECT 'H ',N '铪 ',N '蠖 '
UNION ALL SELECT 'J ',N '丌 ',N '竣 '
UNION ALL SELECT 'K ',N '咔 ',N '廓 '
UNION ALL SELECT 'L ',N '垃 ',N '雒 '
UNION ALL SELECT 'M ',N '妈 ',N '穆 '
UNION ALL SELECT 'N ',N '拿 ',N '糯 '
UNION ALL SELECT 'O ',N '噢 ',N '沤 '
UNION ALL SELECT 'P ',N '趴 ',N '曝 '
UNION ALL SELECT 'Q ',N '七 ',N '群 '
UNION ALL SELECT 'R ',N '蚺 ',N '箬 '
UNION ALL SELECT 'S ',N '仨 ',N '锁 '
UNION ALL SELECT 'T ',N '他 ',N '箨 '
UNION ALL SELECT 'W ',N '哇 ',N '鋈 '
UNION ALL SELECT 'X ',N '夕 ',N '蕈 '
UNION ALL SELECT 'Y ',N '丫 ',N '蕴 '
UNION ALL SELECT 'Z ',N '匝 ',N '做 '
DECLARE @i int
SET @i=PATINDEX( '%[吖-做]% ' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
WHILE @i> 0
SELECT @str=REPLACE(@str,SUBSTRING(@str,@i,1),ch)
,@i=PATINDEX( '%[吖-做]% ' COLLATE Chinese_PRC_CS_AS_KS_WS,@str)
FROM @py
WHERE SUBSTRING(@str,@i,1) BETWEEN hz1 AND hz2
RETURN(@str)
END
GO