这个sql报错Incorrect parameter count in the call to native function ISNULL 怎么解决 INSERT INTO wg_purchase_V001 PID
在你的SQL查询中,使用了函数ISNULL(),但是在函数调用中参数的数量不正确。ISNULL()函数只接受两个参数,第一个参数是要检查是否为NULL的表达式,第二个参数是在第一个参数为NULL时返回的替代值。
在你的查询中,你试图使用ISNULL()函数来替代查询结果中的NULL值。然而,你在函数调用中使用了额外的参数,导致报错。
要解决这个问题,你需要修改查询中的ISNULL()函数的使用方式。以下是修改后的查询:
INSERT INTO wg_purchase_V001 ( PID, Pc_GXName, Pc_GXValue, Pc_Order, Pc_GXTotalValue, Pc_IsAuto, Pc_GxSort, Pc_GxPrice, Pc_GxNum, Pc_IsCheck, Pc_GXValue1, Pc_GXMan, Pc_LIDS, Pc_IsCf ) SELECT 653, Pl_GxSort1, ROUND(SUM(IFNULL(pl_GXValue, 0)), 1) AS pl_GXValue, MAX(pl_order) pl_order, ROUND(SUM(IFNULL(pl_GXValue, 0)), 1), 0, Pl_GxSort1, ROUND(SUM(IFNULL(pl_GXValue, 0)), 1), 1, 0, ROUND(SUM(IFNULL(pl_GXValue, 0)), 1), '欧国冬', '6515', 1 FROM wg_purchaselist_V001 WHERE pid = 653 AND Pl_GxSort1 = '06木工' AND (PLID IN (6515) OR Pl_GxSort3 = '欧国冬') GROUP BY Pl_GxSort1;
在修改后的查询中,不再使用ISNULL()函数来替代NULL值。相反,我们直接在SELECT语句中使用ROUND()函数来保留小数位数,并在IFNULL()函数中提供替代值0。这将确保在计算SUM()函数之前,NULL值已被替换为0
原文地址: http://www.cveoy.top/t/topic/h15C 著作权归作者所有。请勿转载和采集!