1

次の構造のテーブルがあります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
4

1 に答える 1

7

あなたが望むように聞こえます

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

于 2012-08-23T06:26:29.270 に答える