Sql “接收”;单行子查询返回多行;错误
我试图返回一组特定月份给定“帐户”的属性。帐户定义为三个属性的串联。我的代码如下。子查询本身在单独运行时是功能性的,但在SELECT和WHERE子句中使用时不起作用。我正在使用Oracle SQL Developer运行查询。如果有一种方法可以修改此查询,使其返回任何/所有适用的记录,这将非常好。任何帮助都将不胜感激 错误消息: ORA-01427:单行子查询返回多行 142700000-“单行子查询返回多行” *原因:Sql “接收”;单行子查询返回多行;错误,sql,oracle,subquery,Sql,Oracle,Subquery,我试图返回一组特定月份给定“帐户”的属性。帐户定义为三个属性的串联。我的代码如下。子查询本身在单独运行时是功能性的,但在SELECT和WHERE子句中使用时不起作用。我正在使用Oracle SQL Developer运行查询。如果有一种方法可以修改此查询,使其返回任何/所有适用的记录,这将非常好。任何帮助都将不胜感激 错误消息: ORA-01427:单行子查询返回多行 142700000-“单行子查询返回多行” *原因: *行动: 编辑: 谢谢@Ankit Bajpai。您建议的代码工作正常,并
*行动: 编辑:
谢谢@Ankit Bajpai。您建议的代码工作正常,并为我输入的所有指定的串联“派生属性”返回一条记录 您不需要三次选择同一个表,因为您已经从表中选择了数据。你可以试试下面的查询-
SELECT MONTH_KEY
,CAST(NUMBER_ATTRIBUTE_1 ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_2),-10,10) ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_3),-10,10) AS VARCHAR(32)) AS DERIVED_ATTRIBUTE
,NAME
,ANOTHER_VARIABLE
FROM TABLE
WHERE CAST (NUMBER_ATTRIBUTE_1 ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_2),-10,10) ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_3),-10,10) AS VARCHAR(32)) = (12345678900000000010000000001)
AND MONTH_KEY = 201903
请向我们展示整个查询。运行WHERE子句独立查询并查看它返回的行数。标量子查询(选择项中的(select…)语句-别名为派生属性)返回1行以上。如果@ Ankit Bajpai提供了一个帮助您考虑的解决方案。接受的答案提高了其他求职者的网站质量。甚至只是说声谢谢作为对答案的评论,这比你问题中的编辑更清晰。
SELECT MONTH_KEY
,CAST(NUMBER_ATTRIBUTE_1 ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_2),-10,10) ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_3),-10,10) AS VARCHAR(32)) AS DERIVED_ATTRIBUTE
,NAME
,ANOTHER_VARIABLE
FROM TABLE
WHERE CAST (NUMBER_ATTRIBUTE_1 ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_2),-10,10) ||
SUBSTR((10000000000 + NUMBER_ATTRIBUTE_3),-10,10) AS VARCHAR(32)) = (12345678900000000010000000001)
AND MONTH_KEY = 201903