zoukankan      html  css  js  c++  java
  • SQL中文转拼音

    使用下方的函数..

    忘了从哪抄的了..留存一份

    如果只要首字母..建议将数据  Left(tableFiled,1) 后传入函数

    如果字段是空或者null, 不会报错..返回空

    方法体: 

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE FUNCTION [dbo].[F_SYS_getPY]
    (
    @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

    GO
  • 相关阅读:
    浅谈 LCA
    树剖毒瘤题整理
    树链剖分&咕咕咕了好久好久的qtree3
    洛谷P4095新背包问题
    洛谷P4127同类分布
    洛谷P4124 手机号码
    数位dp好题整理+自己wa过的细节记录
    P4999烦(gui)人(chu)的数学作业
    洛谷P4317 花(fa)神的数论题(数位dp解法)
    网络流之最短路径覆盖问题
  • 原文地址:https://www.cnblogs.com/iiwen/p/10223949.html
Copyright © 2011-2022 走看看