select * from T_SCHOOL_RECORDCOMMENT where RECORDID = :p_cid order by to_date('COMMENTTIME','yyyy-mm-dd hh24:mi:ss') desc
这是查询语句
这是查询结果,但是时间排序是乱的,比如说我想刚发表的显示在第一行,然后依次排下去。该如何写这个查询语句呢?
"select*from('COMPANYID','ROCORDID','COMMENTBY','TITLE','CONTENT',to_date('COMMENTTIME','yyyy-mm-dd hh24:mi:ss') time from T_SCHOOL_RECORDCOMMENT where RECORDID = :p_cid) order by time desc"这样写报列名无效,
追答把你的表结构给我看一下吧
追问COMMENTTIME字段已经是date类型了,不需要做处理,直接
select * from T_SCHOOL_RECORDCOMMENT where RECORDID = :p_cid order by COMMENTTIME desc;
如果你是想改变时间格式,用
alter session set nls_date_format='yy-mm-dd hh24:mi:ss';
谢谢哈,按你这么说的成功了。还有一个问题,就是一张表中是装的录音信息嘛,其中表有 一个PRAISECOUNT字段,意思是该条录音的推荐次数,还有一个字段是ISTOP,有两个值,0表示不置顶,1表示置顶。现在我前台页面aspx有一个repeater控件,目前是按推荐次数从高到低排序的,但是我想实现,前面先把置顶的行显示出来,再显示推荐次数从高到底的。这个怎么实现?
追答不客气 - -
在排序的时候是可以写多个条件的,条件的优先级是按照书写顺序排列的
你刚刚说的这个问题select * from table_A order by istop desc,praisecount desc;