我对SQL很新,所以我问这个问题。我正在尝试计算具有DO且没有保修的物品的平均交货时间。保修可以表示为1或NaN,因此该列不是NUMERIC。 我已经写了我认为代码应该看起来像但却遇到错误的内容。
(复合键)
Item_id
Basket_id
seller_id
warranty
postage_class
(全部作为主键)
Item_id
Basket_id
seller_id
warranty
postage_class
delivery_time
create table AVG_DELIVERY_TIME as
(
SELECT DELIVERY_TIME AVG
,(DELIVERY_TIME)
FROM
(
SELECT SHIPPING_TABLE_LINK.warranty
,FIRST_CLASS.DELIVERY_TIME
FROM FIRST_CLASS
INNER JOIN SHIPPING_TABLE_LINK
ON SHIPPING_TABLE_LINK.warranty = FIRST_CLASS.DELIVERY_TIME
)
);
错误报告 - ORA-01722:无效的数字01722. 00000 - “无效的数字”*原因:指定的数字无效。 *操作:指定有效数字。
答案 0 :(得分:0)
我相信您可以使用以下代码将保修栏中的值更新为0而不是NaN
UPDATE table_name SET保修= 0 保证=" NaN;
然后,您可以创建新表并将此列指定为数字而不是varchar。希望有所帮助