zoukankan      html  css  js  c++  java
  • SQL SERVER 联想函数重写

     --改写[dbo].[fGetPy],允许字母/数字联想
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))
    drop function [dbo].[fGetPy]
    GO

    --创建取拼音函数
    create function fGetPy(@Str varchar(500)='')
    returns varchar(500)
    as
    begin
    declare @strlen int,@return varchar(500),@ii int
    declare @n int,@c char(1),@chn nchar(1)

    select @strlen=len(@str),@return='',@ii=0
    set @ii=0
    while @ii<@strlen
    begin
    select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
    if @chn>'z'
    select @n = @n +1
    ,@c = case chn when @chn then char(@n) else @c end
    from(
    select top 27 * from (
    select chn = ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select '' --because have no 'i'
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select '' --no 'u'
    union all select '' --no 'v'
    union all select ''
    union all select ''
    union all select ''
    union all select ''
    union all select @chn) as a
    order by chn COLLATE Chinese_PRC_CI_AS
    ) as b
    else set @c=@chn --英文/数字的字母保持不变
    set @return=@return+@c
    end
    return(@return)
    end
    go
  • 相关阅读:
    Linq基础知识小记四之操作EF
    EF基础知识小记一
    Linq基础知识小记三
    Linq基础知识之延迟执行
    Linq基础知识小记二
    Linq基础知识小记一
    EF 通过DataAnnotations配置属性和类型
    C# 引用类型和值类型
    算法练习之环形链表
    C1128节数超过对象文件格式限制: 请使用 /bigobj 进行编译
  • 原文地址:https://www.cnblogs.com/xvqm00/p/2352992.html
Copyright © 2011-2022 走看看