我有一张包含以下结构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
答案 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
。