-1

为什么我的排序不能正常工作?如果我单击对我选择的值进行排序,那么它只会在第一个数字之后排序,所以如果我有像 100,33,2100,4432 这样的值,那么我会得到这个订单 100,2100,33,4432

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', '') 
4

2 回答 2

5

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

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

于 2013-10-08T13:14:31.337 回答
1

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

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', '')
于 2013-10-08T13:16:26.480 回答