Oracle SQL:分区总和在Select中返回错误
我有一个更大的Oracle SQL:分区总和在Select中返回错误,sql,oracle,select,case,partition,Sql,Oracle,Select,Case,Partition,我有一个更大的Select语句,它工作正常,直到我包含以下返回以下错误的语句。 仅使用Sum部分也可以,但我只需要在每个辅助的第一行使用它,这就是我在这里使用行号的原因 有人能告诉我我做错了什么吗? 问题是Sum和Partition引用的是我在Select中加入的两个不同的表吗 我的SQL(选择的一部分): , CASE WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN (SUM(d
Select
语句,它工作正常,直到我包含以下返回以下错误的语句。仅使用
Sum
部分也可以,但我只需要在每个辅助的第一行使用它,这就是我在这里使用行号的原因
有人能告诉我我做错了什么吗?问题是Sum和Partition引用的是我在Select中加入的两个不同的表吗 我的SQL(选择的一部分):
, CASE
WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN (SUM(di.SHIPPED_UNITS) OVER (PARTITION BY dp.SHIPPER_ID))
ELSE ''
END AS Gesamtmenge
ORA-00932: inconsistent datatypes: expected NUMBER got CHAR
错误消息:
, CASE
WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN (SUM(di.SHIPPED_UNITS) OVER (PARTITION BY dp.SHIPPER_ID))
ELSE ''
END AS Gesamtmenge
ORA-00932: inconsistent datatypes: expected NUMBER got CHAR
非常感谢您的帮助,迈克错误说明一切。您使用的是
'
,它本质上是一个字符,而不是int
, CASE
WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN (SUM(di.SHIPPED_UNITS) OVER (PARTITION BY dp.SHIPPER_ID))
ELSE NULL
END AS Gesamtmenge
错误说明一切。您使用的是
'
,它本质上是一个字符,而不是int
, CASE
WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN (SUM(di.SHIPPED_UNITS) OVER (PARTITION BY dp.SHIPPER_ID))
ELSE NULL
END AS Gesamtmenge
正如错误消息所指出的,在这种情况下,您不能混合使用不同的数据类型。例如,这是错误的
select case when 1=1 then 2 else '' end from dual
使用
null
或else
中的0,或将然后
表达式转换为字符串,正如错误消息指出的那样,在这种情况下,您不能混合使用不同的数据类型。例如,这是错误的
select case when 1=1 then 2 else '' end from dual
使用
null
或else
中的0,或将然后
表达式转换为字符串,因为原始列是整数,所以不能传递字符
, CASE
WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN
(SUM(di.SHIPPED_UNITS) OVER (PARTITION BY dp.SHIPPER_ID))
ELSE NULL
END AS Gesamtmenge
由于原始列是整数,所以不能传递字符
, CASE
WHEN ROW_NUMBER() OVER (PARTITION BY dp.SHIPPER_ID ORDER BY di.AID) = 1 THEN
(SUM(di.SHIPPED_UNITS) OVER (PARTITION BY dp.SHIPPER_ID))
ELSE NULL
END AS Gesamtmenge
shipped\u units
type number吗?@RLOG:是的,它是type number。请使用null而不是“”。@MiloBellano:非常感谢-非常好!如果您将其作为答复发布,我将接受此回复。:)很乐意帮忙!:)如果你想接受,我已经把答案贴出来了。谢谢你,伙计!shipped\u units
type number吗?@RLOG:是的,它是type number。请使用null而不是“”。@MiloBellano:非常感谢-非常好!如果您将其作为答复发布,我将接受此回复。:)很乐意帮忙!:)如果你想接受,我已经把答案贴出来了。谢谢你,伙计!谢谢!它起作用了。米洛也发了这个,很好。我错过了2分钟:)非常感谢!它起作用了。米洛也发了这个,很好。我错过了2分钟:)