我有一个具有以下结构的表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)
这听起来像你想要的
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
.