zoukankan      html  css  js  c++  java
  • POSTGRESQL获得汉字首字拼音函数(转)

    CREATE FUNCTION func_chinese_spell(str VARCHAR(2000)) RETURNS VARCHAR(2000) AS $$
    DECLARE
    word NCHAR(1);
    code VARCHAR(2000);
    i INTEGER;
    chnstr VARCHAR(2000);
    BEGIN
    code := '';
    i := 1;
    chnstr := str;
    WHILE LENGTH(chnstr)>0 LOOP
    word := SUBSTRING(str,i,1);
    code := code || CASE WHEN (ASCII(word) BETWEEN 19968 AND 19968+20901) THEN
    (
    SELECT p FROM
    (
    SELECT 'A' as p,N'驁' as w
    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 w>=word ORDER BY p ASC LIMIT 1
    )
    ELSE word END;
    i := i + 1;
    chnstr := SUBSTRING(str,i,LENGTH(str)-i + 1);
    END LOOP;

    RETURN code;
    END;
    $$LANGUAGE plpgsql;

  • 相关阅读:
    定位及CSS常见属性
    浮动及清浮动的方法
    C语言II博客作业04
    C语言II—作业03
    C语言II—作业02
    C语言II博客作业01
    期末总结
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
  • 原文地址:https://www.cnblogs.com/wangbin/p/1417503.html
Copyright © 2011-2022 走看看