2012-03-01 13 views
0

選択した行を更新する必要があります。選択した行は、日付を格納する列で並べ替える必要があります。 このような順序が必要な理由は、日付の順序に基づいて昇順の値で行を更新したいからです。注文された選択行を更新する

私は可能な限り1つのステートメントでそれを取得したいと私は私のJavaコードでそれを必要とするので、私はカーソルを使用しないようにしたいと思います。事前に

おかげで

+1

あなたはどのRDBMSとバージョンを使用していますか? –

+0

私はOracle 11gを使用しています – xwhyz

答えて

0

はどのようにSET句の列に複数の値を設定することができますか?これは、Oracleのように見える

+0

私はおそらくできません - 私は説明したものを達成したいと思っています。このコードは何とか説明です。私はそれが誤解を招く可能性があるので編集します:) – xwhyz

+0

できる場合は、いくつかのサンプルデータを投稿してください... – Teja

+0

downvotingではありませんが、答えとしてそれらを追加するのではなく、質問コメントにコメントを入れることを検討してください。 –

3

はROW_NUMBERとPARTITIONを持っているので、どのようにこのようなものについて:私はあなたの例では、スキーマを十分に与えていないようですので、この仕事をするためにいくつかの列を作る必要があった

UPDATE MyTable 
SET MyTable.Value = RowNum 
FROM MyTable 
    JOIN 
    (
     SELECT ID, 
      ROW_NUMBER() OVER (PARTITION BY UserName ORDER BY MyDate) AS RowNum 
     FROM MyTable AS InnerTable 
    ) AS Hierarchy 
     ON MyTable.ID = Hierarchy.ID 

。しかし、一般的には、このようなものがうまくいくはずです

+0

SET teeest.order = RowNumb - "SQLコマンドが正しく終了しませんでした"というエラーが表示されます。私はRowNumとRowNumbエイリアスを試しました – xwhyz

+0

ハハ、oops。私は私の答えを編集しました。私はテーブルからサブクエリを省いた。あなたはそのエラーを複製しましたか?コマンドラインで –

+0

エラー:2カラム:29 エラーレポート: SQLエラー:ORA-00933:polecenieのSQLのniepoprawniezakończone 00933. 00000 - "SQLコマンドが正常に終了しない" 最初のROWNUM変数の周りにある – xwhyz

関連する問題