SQL de mise à JOUR du Numéro de ligne

J'ai une table serviceClusters avec une colonne d'identité(1590 valeurs). Ensuite, j'ai une table serviceClustersNew avec les colonnes ID, texte et commentaire. Dans ce tableau, j'ai quelques valeurs pour le texte et le commentaire, l'ID est toujours 1. Voici un exemple pour la table:

[1, dummy1, hello1;

1, dummy2, hello2;

1, dummy3, hello3;

etc.]

WhaI veux maintenant, pour les valeurs dans la colonne ID est la poursuite de l'index de la table serviceClusters plus les numéro de Ligne: Dans notre cas, ce serait 1591, 1592 et 1593.

J'ai essayé de résoudre le problème comme ceci: d'Abord j'ai mis à jour l'ID de colonne avec la valeur maximale, puis j'ai essayé d'ajouter le numéro de ligne, mais cela ne marche pas:

-- 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)

Par l'envoi de la dernière commande, j'obtiens le message d'erreur "erreur de Syntaxe: Commandé Fonctions Analytiques ne sont pas autorisés dans les sous-requêtes.". Avez-vous des suggestions, comment je pourrais résoudre le problème? Je sais que je pourrais le faire avec l'instabilité de la table, ou par l'ajout d'une colonne, mais est-il possible sans la création d'une nouvelle table /modifier le tableau en cours?

  • c'est oracle ou mysql ?
  • C'est Teradata
InformationsquelleAutor el smu | 2013-07-31