次の構造のテーブルがあります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
あなたが望むように聞こえます
SELECT to_char( max( col_date ),
'yyyy-mm-dd hh24:mi:ss' )
FROM demotable
WHERE col_id IN (1,2,3)
一般に、MAX
最初に実行してから、最大の日付を文字列に変換する必要があります。これは、日付比較セマンティクスを使用することと、比較を実行する方が安価であり、関心のある1つの行でのみデータ型変換を実行することが理由です。またSELECT
、関心のあるテーブルからも実行する必要があります。 、からではありませんDUAL
。