ORACLE中的最大功能

svk*_*nky 1 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
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 7

这听起来像你想要的

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

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