回覆列表
  • 1 # 使用者7698895345900

    建立函式:

    CREATE FUNCTION fun_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

    呼叫函式:

    select * from 表名 where dbo.fun_getPY(欄位名) like N"%w%";

    注意如果直接寫函式名 fun_getPY() 可能會報錯,加上dbo.即可正常運行了。

  • 中秋節和大豐收的關聯?
  • 商業票據有什麼作用?