排序字段含NULL值,怎么排在NULL在最后?全世界的数据库都是在最前的,可以有通过数据库设置排在前面吗?
SELECT EMPLOYEEID, LASTNAME, FIRSTNAME, TITLE, TITLEOFCOURTESY, BIRTHDATE,
HIREDATE, ADDRESS, CITY, REGION, POSTALCODE, COUNTRY, HOMEPHONE,
EXTENSION, PHOTO, NOTES, REPORTSTO, PHOTOPATH
FROM EMPLOYEES T0
ORDER BY HIREDATE
这个问题够头疼的,推荐是不去管他,这是oracle的机制,外层的linq不应该去特意关照,因为解决此问题可能会使索引失效,同时也有可能使用者知道这是oracle并且知道在oracle中null会在最后,而你特意的处理会使结果与使用者的预期不符
解决方法:
使用nvl函数,对null值作处理
select * from 表 order by nvl(HIREDATE, TO_DATE('1900-01-01', 'yyyy-mm-dd')
当然对于不同的数据类型要有不同的默认值,比如整型用-65535,字符串用空的等,很麻烦的