0
我使用COALESCE
函数来避免ORA-01427和pick up first non-null value。OracleDB:COALESCE和ORA-01427:单行子查询返回多个行
COALESCE((
SELECT c.SCounts
FROM counts c
WHERE c.ID = 10000
), 0)
当我评论此代码一切正常。
我使用COALESCE
函数来避免ORA-01427和pick up first non-null value。OracleDB:COALESCE和ORA-01427:单行子查询返回多个行
COALESCE((
SELECT c.SCounts
FROM counts c
WHERE c.ID = 10000
), 0)
当我评论此代码一切正常。
我想上面的COALESCE被嵌入到一个SELECT是这样的:
SELECT
COALESCE((
SELECT c.SCounts
FROM counts c
WHERE c.ID = 10000
), 0)
FROM counts
如果这是真的,那么问题可能是这个选择将返回尽可能多的行,表COUNTS了。
此表上的主键(或唯一键)是什么?我敢打赌,counts.id专栏不是唯一的,其中存在你的问题。另外,这个代码在哪里被使用?我假设它在外部查询的选择列表中? (即'select coalesce((<你的查询),0),... <其他列> ...) – Boneist
谢谢,我已经发现问题了。 '合并((my_subselect),0)'。子选择返回多于一个值 –
它将为一行返回一个值,但是如果从没有WHERE的表中选择,则会得到很多行。无论如何,如果这是真正的问题,请您在下面接受我的回答吗? – Galcoholic