重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个问题好奇怪,是不是这个表的中某一列是出生日期,但里面没有数据,没有数据怎么排?都是空的话肯定排不了。如果里面有数据,只是没有时分秒,那就是按照年月日排序。
高淳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
“order by 出生日期”,如果这个时间是人工输入的话,一般是输入到年月日。
select * from (select 除了时间所有字段写出来,to_date('COMMENTTIME','yyyy-mm-dd hh24:mi:ss') time from T_SCHOOL_RECORDCOMMENT where RECORDID = :p_cid) order by time desc;
这样试试,但是你的时间字段用该保存为date类型,这样好像很麻烦。。
1、首先在oracle建立数据表的时候,对表的命名有以下规范:以字母开头表名长度不能超过30个字符,不能使用oracle保留关键字,可以使用A-Z,a-z,0-9,#,$等。
2、如果表名中包含特殊字符是直接报错的。如下图使用了 *。
3、在建立表的时候,数字也是不能使用表名的开始的。
4、但如果使用双引号对表名进行规范的话,是可以建立以数字或者包含特殊字符的表名的。
5、过这样建立的表名,在查询数据的时候是非常麻烦的,查询时也要加双引号。而且这样建立的表名,在项目运行的过程中也非常容易造成各种麻烦,所以尽量不要使用。
你的意思其实是按ontentid除去重复, 取时间最新的数据;
有两种方法可以:
第一种:
select a.* from TAB a where a.contentid exists
(select t.contentid,max(t.lastmodifytime) from TAB t where t.contentid = a.contentid group by t.contentid
)order by a.lastmodifytime desc ;
第二种可用函数ROW_NUMBER() OVER(PARTITION BY , 也是常用的
SELECT * FROM TAB A WHERE A.CONTENTID IN
(
SELECT CONTENTID
FROM (
SELECT CONTENTID,
ROW_NUMBER() OVER(PARTITION BY T.contentid ORDER BY T.lastmodifytime) RM
FROM TAB T
)
WHERE RM = 1
)
ORDER BY lastmodifytime DESC;
希望对你有帮助, 要记得评分啊!