2012-08-23 72 views
1

我有一個表結構如下DEMOTABLE(COL_ID INT,COL_DATE DATE).
爲什麼下面的查詢是給我一個錯誤最大功能在ORACLE

錯誤代碼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 

回答

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

+0

部分正確,但我想要col_id的最大(col_date)1,2,3 – svkvvenky

+0

@svkvvenky - 抱歉,我遺漏了'WHERE'子句。糾正該錯誤。 –

+0

@賈斯汀 - 非常感謝您的即時回覆。 – svkvvenky