使用函数AVG求平均值时,如果结果为除不尽的值,会报错,Specified cast is not valid 返回

SqlSugar 处理完成
12 382
该叫什么 Light 发布于1个月前
悬赏:0 飞吻

版本:5.1.4.168-preview16

错误截图:B[Q4(ZU`_1C)CHY1ULTKVSX.png


热忱回答12

  • fate sta fate sta VIP0
    1个月前

    Avg(sqlfunc.rand(a.num,2))

    这样试试

    0 回复
  • Light Light VIP0
    1个月前

    @fate sta:不支持这样的语法吧

    0 回复
  • Light Light VIP0
    1个月前

    @fate staSVMAJZOM`%(H[4G2@ALV7]H.png


    0 回复
  • fate sta fate sta VIP0
    1个月前

                SqlFunc.Round

    0 回复
  • Light Light VIP0
    1个月前

    @fate sta:第一种,报错,第二种,语法错误

    5]]{(F9Z4]39FJ2UV4K)S2D.png

    0 回复
  • Light Light VIP0
    1个月前
    0 回复
  • fate sta fate sta VIP0
    1个月前
     decimal price = db.Queryable<TempStudent>()
         .Select(it=>SqlFunc.Round( SqlFunc.AggregateAvg(it.num),2)).First();

    这样就可以了

    0 回复
  • Light Light VIP0
    1个月前

    @fate sta:这个我也试过了,在oracle中,结果不对,有 ROWNUM = 1和没有结果完全不同
    数据库版本:Oracle 11G

    生成出来的SQL
     SELECT AVG(NVL("PRICE",0))  FROM "BX_PIGPRICE"  WHERE ((( "STATDAY" <= '2024-09-03' ) AND ( "STATDAY" > '2024-08-27' )) AND ( "AREA_ID" = '1F63DB81-54EC-4444-B38F-138E45DF6890' )) AND   ROWNUM = 1

    0 回复
  • Light Light VIP0
    1个月前

    H04L2V(O7XCC55YZLW~ODUE.png

    W1Y9$G6BWE0UAH0P~TKEYTF.png

    0 回复
  • Light Light VIP0
    1个月前

    除非给他包一层

    Z5J9ZXFYW2EHC1T{WZZU3LR.png

    0 回复
  • fate sta fate sta VIP0
    1个月前

    @Light:first改single

    0 回复
  • fate sta fate sta VIP0
    1个月前

    这样就没rownum了

    0 回复