列 ID (1590 値) を持つテーブル serviceClusters があります。次に、列 ID、テキスト、およびコメントを含む別のテーブル serviceClustersNew があります。このテーブルには、テキストとコメントの値がいくつかあります。ID は常に 1 です。テーブルの例を次に示します。
[1、ダミー1、ハロー1;
1、ダミー2、ハロー2;
1、ダミー3、ハロー3;
等。]
列 ID の値に必要なのは、テーブル serviceClusters の継続的なインデックスと現在の行番号です。この場合、これは 1591、1592、および 1593 になります。
私はこのような問題を解決しようとしました:最初に列IDを最大値で更新し、次に行番号を追加しようとしましたが、これはうまくいきません:
-- Update ID to the maximum value 1590
UPDATE serviceClustersNew
SET ID = (SELECT MAX(ID) FROM serviceClusters);
-- This command returns the correct values 1591, 1592 and 1593
SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber
FROM serviceClustersNew
-- But I'm not able to update the table with this command
UPDATE serviceClustersNew
SET ID = (SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber FROM
serviceClustersNew)
最後のコマンドを送信すると、「構文エラー: 順序付き分析関数はサブクエリでは許可されていません。」というエラーが表示されます。どうすれば問題を解決できるか、何か提案はありますか? 揮発性テーブルを使用するか、列を追加することでそれを実行できることはわかっていますが、新しいテーブルを作成したり、現在のテーブルを変更したりしない方法はありますか?