select语句中的列可以用什么来代替

今天看了一个复杂的语句,终于理解了,原来select语句中后面所有的列名可以用 返回结果的函数(好像都返回一个结果)来代替。 因为列名所代表的就是一个记录的属性,属性相当于变量(面向对象中即是如此)函数返回的一个结果是不确定的,所以它整体可以看做是一个变量。那么

select ename, substr(to_char(hiredate,'yyyy-mm-dd'),0,4),substr(to_char(hiredate,'mm-dd-yy'),0,2) 

 from emp order by

to_number(substr(to_char(hiredate,'mm-dd-yy'),0,2)),to_number(substr(to_char(hiredate,'yyyy-mm-dd'),0,4))

就是合理的。

该题目原题如下:

显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则

将最早年份的员工排在最前面.

阅读全文
类别:Oracle 查看评论

posted @   一个人的深夜  阅读(448)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示