Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Sql排序错误_Sql Server_Tsql_Sorting - Fatal编程技术网

Sql server Sql排序错误

Sql server Sql排序错误,sql-server,tsql,sorting,Sql Server,Tsql,Sorting,为什么我的分类不能正常工作?如果我在下面单击对我选择的值进行排序,那么它只在第一个数字之后进行排序,因此如果我有像100,3321004432这样的值,那么我得到的顺序是1002100,334432 100怎么可能比33小,以此类推 SELECT Replace( CONVERT(VARCHAR, CONVERT(INTEGER, Sum( Isnull( a.planabsatz_mt1 + a.planabsat

为什么我的分类不能正常工作?如果我在下面单击对我选择的值进行排序,那么它只在第一个数字之后进行排序,因此如果我有像100,3321004432这样的值,那么我得到的顺序是1002100,334432

100怎么可能比33小,以此类推

SELECT Replace(
      CONVERT(VARCHAR, 
         CONVERT(INTEGER, Sum( 
           Isnull( 
           a.planabsatz_mt1 + a.planabsatz_mt2 
                 + a.planabsatz_mt3 + a.planabsatz_mt4 
                 + a.planabsatz_mt5 + a.planabsatz_mt6 
                 + a.planabsatz_mt7 + a.planabsatz_mt8 
                 + a.planabsatz_mt9 + a.planabsatz_mt10 
                 + a.planabsatz_mt11 + a.planabsatz_mt12, 0))), 1), 
          '.00', '') 

您已在发布的select语句中将值转换为字符串


因此,进行alpha排序时,100在33之前。

在排序之前,您将数字转换为varchar。试试这个:

SELECT Replace(
   CONVERT(INTEGER, Sum( 
     Isnull( 
     a.planabsatz_mt1 + a.planabsatz_mt2 
           + a.planabsatz_mt3 + a.planabsatz_mt4 
           + a.planabsatz_mt5 + a.planabsatz_mt6 
           + a.planabsatz_mt7 + a.planabsatz_mt8 
           + a.planabsatz_mt9 + a.planabsatz_mt10 
           + a.planabsatz_mt11 + a.planabsatz_mt12, 0))), 
    '.00', '')

这听起来像是所谓的词法排序,在对包含数字的文本字段进行排序时会发生。如果比较字符串,则会从左到右逐个字符进行比较。1比3小,完成了。我试过了,但它给出了相同的答案。我把这个列命名为Total=Select,依此类推……之后,我在TotalHmm上下了一个订单,我才意识到。。。替换可能强制转换为字符串。试着取下替换件并告诉我?