ORACLE中的最大功能

时间:2012-08-23 06:24:38

标签: sql oracle

我有一张包含以下结构DEMOTABLE(COL_ID INT,COL_DATE DATE).的表格 为什么以下查询给我一个错误

  

错误代码936,SQL状态42000:ORA-00936:缺少表达式

SELECT MAX(
SELECT TO_CHAR(COL_DATE,'YYYY-MM-DD HH24:MI:SS') 
FROM DEMOTABLE WHERE COL_ID IN(1,2,3))
FROM DUAL

1 个答案:

答案 0 :(得分:6)

这听起来像你想要的

SELECT to_char( max( col_date ),
                'yyyy-mm-dd hh24:mi:ss' )
  FROM demotable
 WHERE col_id IN (1,2,3)

通常,您希望先执行MAX,然后再将最大的日期转换为字符串。这是因为你想使用日期比较语义,因为它比较便宜,只做你感兴趣的那一行的数据类型转换。你也希望从表中SELECT你感兴趣的,而不是DUAL