作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个带有标题的平面文件。我收到一个 ORA-00904 错误,我认为这是因为我创建的 header 没有“employee_name”字段(我的假设是否正确?)。
如果是,如何在没有标题的情况下对查询进行排序?
我得到的错误:
ORA-00904: "employee_id": 无效标识符
我的代码:
从双中选择“文件名”作为文件记录
联合所有
选择“文件日期:”|| to_char(sysdate,'mm/dd/yyyy) as filerec from dual
联合所有
选择员工 ID ||来自employee_database 的emloyee_name 作为filerec
按employee_id 排序;
这是我想要产生的输出:
文档名称
文件日期:02/27/2015
200125露丝陈
200126丹·冈萨雷斯
200135Lisa Mayoral
最佳答案
在 SQL ,您不能命名 中的列订购者 与 复合声明 ,你必须使用 列位置 .
或者,
显式投影列 .
在您的情况下,由于您已经连接了列,因此您不能明确地投影它们,而且列位置也没有任何意义。因此,您可以玩一个小把戏。添加一个伪列,将所需的值添加到要先排序的行中,然后使用 空 您希望在第一列之后对其进行排序的伪列中的值。因此,NULL 总是放在排序的末尾。
例如,
SQL> SELECT filerec FROM (
2 SELECT 'FILENAME' AS filerec, 1 col FROM dual
3 UNION ALL
4 SELECT 'FILEDATE: ' || to_char(SYSDATE,'mm/dd/yyyy') as filerec, 2 col FROM dual
5 UNION ALL
6 SELECT empno || ename AS filerec, NULL col FROM emp
7 ORDER BY 2,1
8 );
FILEREC
--------------------------------------------------
FILENAME
FILEDATE: 02/27/2015
7369SMITH
7499ALLEN
7521WARD
7566JONES
7654MARTIN
7698BLAKE
7782CLARK
7788SCOTT
7839KING
7844TURNER
7876ADAMS
7900JAMES
7902FORD
7934MILLER
16 rows selected.
SQL>
关于sql - ORA-00904 : ORDER BY with UNION ALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762517/
我是一名优秀的程序员,十分优秀!