sql >> データベース >  >> RDS >> Oracle

ORA-00907右括弧の問題がありません-挿入クエリ内で順序を指定して選択してください

    現在の回答はどちらも、order byを使用しているという事実を無視しています。 およびrownum 同じクエリで本質的に危険です。必要なデータが得られるという保証はまったくありません。順序付けられたクエリの最初の行が必要な場合は、必須 サブクエリを使用する:

    insert into my_tbl ( col1, col2 )
    select data, 'more data'
      from ( select data
               from fir_tabl
              where id = 1
              order by created_on desc )
     where rownum = 1
           ;
    

    rankのような関数を使用することもできます。 2つのcreated_onがある場合でも、必要なメソッドでデータを並べ替えます 同一の日付は、rnk = 1の2つの値になります。 。

    insert into my_tbl ( col1, col2 )
    select data, 'more data'
      from ( select data
                  , rank() over ( order by created_on desc ) as rnk
               from fir_tabl
              where id = 1)
     where rnk = 1
           ;
    


    1. MariaDBでJSON配列から要素を返す方法

    2. SQLでテーブル行の制限を設定する

    3. 外部mysqlデータベースをphpに接続する

    4. 別のレコードが存在する場合は、グループ内のレコードの値を除外します