comment faire un script avec une boucle for en sql ?
comment faire un script avec une boucle for en sql ?
Salut,
Il me semble que cela n'est pas possible en SQL pur, il faut l'associer à autre chose !
![]()
en fait ce que je faire c'est ça :
J'ai une table avec 3 champs :
je veux copier le contenu de la valeur col3 pour FR dans IT de façon à avoir ce qui suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 col1 col2 col3 toto FR aaaaaaaaaaaaa toto DE bbbbbbbbbbbbb toto IT titi FR ffffffffffffff titi DE ddddddddddddd titi IT
je ne peux pas faire ceci ligne par ligne puisque j'ai 14000 lignes dans ma base de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 toto FR aaaaaaaaaaaaa toto DE bbbbbbbbbbbbb toto IT aaaaaaaaaaaaa
Tu peux le faire en une requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UPDATE matable AS it SET col3 = ( SELECT fr.col3 FROM matable AS fr WHERE fr.col2 = 'FR' AND fr.col1 = it.col1 ) WHERE it.col2 = 'IT' ;
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
j'ai fait ceci :
mais j'ai une erreur que je ne comprend pas qui est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 UPDATE BUNDLE_WEB AS it SET BUNDLE_WEB.BUNDLE_VALUE = ( SELECT fr.BUNDLE_WEB.BUNDLE_VALUE FROM BUNDLE_WEB AS fr WHERE fr.BUNDLE_WEB.LANGUAGE = 'FR' AND fr.BUNDLE_WEB.BUNDLE_KEY = it.BUNDLE_WEB.BUNDLE_KEY ) WHERE it.BUNDLE_WEB.LANGUAGE = 'IT';
Incorrect syntax near '='.
Server Message: Number 107, Severity 15
Server 'SPARCLOPH02', Line 3:
The column prefix '.fr.BUNDLE_WEB.' does not match with a table name or alias name used in the query. Either the table is not specified in the FROM clause or it has a correlation name which must be used instead.
Ta requête doit être du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 UPDATE BUNDLE_WEB AS it SET it.BUNDLE_VALUE = ( SELECT fr.BUNDLE_VALUE FROM BUNDLE_WEB AS fr WHERE fr.LANGUAGE = 'FR' AND fr.BUNDLE_KEY = it.BUNDLE_KEY ) WHERE it.LANGUAGE = 'IT';
ça ne marche pas non plus et j'ai ceci comme message
Incorrect syntax near '='.
Server Message: Number 107, Severity 15
Server 'SPARCLOPH02', Line 3:
The column prefix '.fr.' does not match with a table name or alias name used in the query. Either the table is not specified in the FROM clause or it has a correlation name which must be used instead.
Partager