zoukankan      html  css  js  c++  java
  • 中文排序

    SQL Server?

    try
    --------------------------------
    --排序可以
    declare @t table([name] varchar(10))
    insert into @t select '张三'
    union all select '李四'
    union all select '王二'
    union all select '王五'
    union all select '吴三'

    select * from @t order by [name] collate Chinese_PRC_CI_AS
    leohuang(LEO)
    回复:关于SQL语句怎么样才能实现中文数据按首字母排序

    或者用函数,转贴
    -------------------------------------------------
    CREATE function fn_GetPy(@str nvarchar(4000))
    returns nvarchar(4000)
    --WITH ENCRYPTION
    as
    begin
    declare @intLenint
    declare @strRetnvarchar(4000)
    declare @temp nvarchar(100)

    set @intLen = len(@str)
    set @strRet = ''

    while @intLen > 0
    begin
    set @temp = ''

    select @temp = case
    when substring(@str,@intLen,1) >= '帀' then 'Z'
    when substring(@str,@intLen,1) >= '丫' then 'Y'
    when substring(@str,@intLen,1) >= '夕' then 'X'
    when substring(@str,@intLen,1) >= '屲' then 'W'
    when substring(@str,@intLen,1) >= '他' then 'T'
    when substring(@str,@intLen,1) >= '仨' then 'S'
    when substring(@str,@intLen,1) >= '呥' then 'R'
    when substring(@str,@intLen,1) >= '七' then 'Q'
    when substring(@str,@intLen,1) >= '妑' then 'P'
    when substring(@str,@intLen,1) >= '噢' then 'O'
    when substring(@str,@intLen,1) >= '拏' then 'N'
    when substring(@str,@intLen,1) >= '嘸' then 'M'
    when substring(@str,@intLen,1) >= '垃' then 'L'
    when substring(@str,@intLen,1) >= '咔' then 'K'
    when substring(@str,@intLen,1) >= '丌' then 'J'
    when substring(@str,@intLen,1) >= '铪' then 'H'
    when substring(@str,@intLen,1) >= '旮' then 'G'
    when substring(@str,@intLen,1) >= '发' then 'F'
    when substring(@str,@intLen,1) >= '妸' then 'E'
    when substring(@str,@intLen,1) >= '咑' then 'D'
    when substring(@str,@intLen,1) >= '嚓' then 'C'
    when substring(@str,@intLen,1) >= '八' then 'B'
    when substring(@str,@intLen,1) >= '吖' then 'A'
    else rtrim(ltrim(substring(@str,@intLen,1)))
    end

    --对于汉字特殊字符,不生成拼音码
    if (ascii(@temp)>127) set @temp = ''

    --对于英文中小括号,不生成拼音码
    if @temp = '(' or @temp = ')' set @temp = ''

    select @strRet = @temp + @strRet

    set @intLen = @intLen - 1
    end

    return lower(@strRet)
    end
    go

    --调用
    select dbo.fn_getpy('张三')

    --返回:zs
  • 相关阅读:
    Sqli-labs Less-37 利用 ' 的utf-16突破mysql_real_escape_string()函数转义
    Sqli-labs Less-36 宽字节注入 绕过mysql_real_escape_string()函数转义
    闭包
    JavaScript(1)
    css和JavaScript
    解决奇怪的错误。访问的网页一直被拦截
    html网页乱码解决
    BZOJ 3676: [Apio2014]回文串 回文树 回文自动机
    BZOJ 3676: [Apio2014]回文串 后缀自动机 Manacher 倍增
    BZOJ 3238: [Ahoi2013]差异 后缀自动机 树形dp
  • 原文地址:https://www.cnblogs.com/wangxiaohuo/p/596402.html
Copyright © 2011-2022 走看看