sql - 如何使用不在视图本身中的列对视图进行排序?
问题描述
我正在处理我的 sql 分配,并且有一个关于使用视图之外的列对视图进行排序的问题。所以我有了将视图与列本身连接起来的想法,而不是在查询中显示列,这就是我在网上找到的
SELECT *
FROM (SELECT *
FROM vwCustomerOrder
INNER JOIN ORDERDETAILS.ORDERLINENUMBER
ON vwCustomerOrder.QUANTITYORDERED = ORDERDETAILS.QUANTITYORDERED
ORDER BY ORDERDETAILS.ORDERLINENUMBER)
这显示了 ORA-00942 错误,表示视图没有到达列,有人知道该怎么做吗?
解决方案
如果缺少的列来自同一个表,然后从原始表中选择而不是从视图中选择,则连接将是多余的。如果不是,如果关系是一对一的,那么 join 可以工作:
SELECT *
FROM vwCustomerOrder
INNER JOIN ORDERDETAILS
ON vwCustomerOrder.QUANTITYORDERED = ORDERDETAILS.QUANTITYORDERED
ORDER BY ORDERDETAILS.ORDERLINENUMBER
推荐阅读
- react-native - 使用 react native 0.59.5 删除警告 viewPagerAndroid
- php - 需要 PHP/CSS 更改
- laravel - 使用条件仅在 laravel 控制器中为管理员用户获取数据
- linux-kernel - 在内核模块中分配大页面
- java - 为什么 webdriver 在隐式等待中等待的时间比定义的时间长?
- python - Python - 如何在 SQL 服务器上添加新列并插入列表行
- c - C 字符串文字和指针赋值
- heroku - ROOT_URL 未定义 | 推送导致构建失败
- c++ - 枚举所有分区并测试它们是否为 NTFS
- c++ - 编写一个自定义的、高度专业化的、专用的、符合标准的 C++ 分配器