首页 > 解决方案 > 如何使用不在视图本身中的列对视图进行排序?

问题描述

我正在处理我的 sql 分配,并且有一个关于使用视图之外的列对视图进行排序的问题。所以我有了将视图与列本身连接起来的想法,而不是在查询中显示列,这就是我在网上找到的

SELECT *
FROM (SELECT *
FROM vwCustomerOrder
INNER JOIN ORDERDETAILS.ORDERLINENUMBER
ON vwCustomerOrder.QUANTITYORDERED = ORDERDETAILS.QUANTITYORDERED
ORDER BY ORDERDETAILS.ORDERLINENUMBER)

这显示了 ORA-00942 错误,表示视图没有到达列,有人知道该怎么做吗?

标签: sqloracle

解决方案


如果缺少的列来自同一个表,然后从原始表中选择而不是从视图中选择,则连接将是多余的。如果不是,如果关系是一对一的,那么 join 可以工作:

SELECT *
FROM vwCustomerOrder
INNER JOIN ORDERDETAILS
ON vwCustomerOrder.QUANTITYORDERED = ORDERDETAILS.QUANTITYORDERED
ORDER BY ORDERDETAILS.ORDERLINENUMBER

推荐阅读