none
有没有按中文来排序的sql语句 (求助) RRS feed

  • 问题


  • 有没有按中文来排序的sql语句 
    比如 :一级
              二级
              三级

    注:使用如下语句排序:

    string sSql = string.Format("select distinct({0}) from {1} order by {0}",sFieldName,sTblName);

    sFieldName为字段名

    sTblName为表名

    得到的结果为:一级

                       三级

                       二级

    如何得到如下所示:一级
                             二级
                             三级

    2012年3月8日 7:06

答案

  • 請轉成Varchar 再Sort!

    ORDER BY CAST(C1 AS VARCHAR);

    DECLARE @T1 AS TABLE (
    C1 NVARCHAR(20)
    ,C2 VARCHAR(20)
    );
    
    INSERT INTO @T1
            ( C1  
            , C2
            )
    VALUES  ( N'一級' , '一級' 
            ),( N'二級',  '二級'  
            ),( N'三級', '三級' 
            );
            
    SELECT *
    FROM @T1
    ORDER BY C1;
    
    SELECT *
    FROM @T1
    ORDER BY C2;
    
    SELECT *
    FROM @T1
    ORDER BY CAST(C1 AS VARCHAR);

    另外,

    我改用collate去Sort也可以!

    SELECT *
    FROM @T1
    ORDER BY C1 COLLATE Chinese_Taiwan_Stroke_CS_AS;


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    2012年3月8日 7:22