zoukankan      html  css  js  c++  java
  • SQL获取汉字首字母

    create function f_GetPy(@str nvarchar(4000))
    returns nvarchar(4000)
    as
    begin
    declare @strlen int,@re nvarchar(4000)
    declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
    insert into @t(chr,letter)
      select '','A' union all select '','B' union all
      select '','C' union all select '','D' union all
      select '','E' union all select '','F' union all
      select '','G' union all select '','H' union all
      select '','J' union all select '','K' union all
      select '','L' union all select '','M' union all
      select '','N' union all select '','O' union all
      select '','P' union all select '','Q' union all
      select '','R' union all select '','S' union all
      select '','T' union all select '','W' union all
      select '','X' union all select '','Y' union all
      select '','Z'
      select @strlen=len(@str),@re=''
      while @strlen>0
      begin
        select top 1 @re=letter+@re,@strlen=@strlen-1
          from @t a where chr<=substring(@str,@strlen,1)
          order by chr desc
        if @@rowcount=0
          select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
      end
      return(@re)
    end
    go
    
    update BY_CustomerContacter Set Initials=upper(substring(dbo.f_GetPy(ContacterName), 1, 1))
    update BY_SupplierContacter Set Initials=upper(substring(dbo.f_GetPy(ContacterName), 1, 1))
    
    drop function dbo.f_GetPy
    
    select Initials,ContacterName,Id from BY_CustomerContacter order by Initials asc
    select Initials,ContacterName,Id from BY_SupplierContacter order by Initials asc
  • 相关阅读:
    回溯法之图的着色问题
    回溯法基本思想
    L2-006 树的遍历
    P1540 机器翻译
    P1067 多项式输出
    C++STL之map映照容器
    C++STL之multiset多重集合容器
    C++STL之set集合容器
    C++之string基本字符系列容器
    C++STL之vector向量容器
  • 原文地址:https://www.cnblogs.com/deep-blue/p/5110051.html
Copyright © 2011-2022 走看看