Je me suis un peu gratté la tête pour le titre .... sans trouver quelque chose de très parlant
Par contre le descriptif du problème est tout simple. Je souhaite faire un UPDATE avec une formule de type REPLACE sur une colonne de type string. Jusqu'à là, rien de plus simple. Là où ça se complique, c'est qu'il y aurait plusieurs REPLACE à faire en même temps pour une même ligne.
L'exemple suivant est donné juste à titre indicatif et simplificateur, il ne reflète en rien l'objectif final qui est tout autre.
Soit la table COMMANDE avec une colonne NUMERO qui est l'identifiant unique et LISTE_ARTICLE qui contient une concaténation des codes Articles contenus dans la commande, séparés par un ';'.
où A1, A2, etc. sont des codes articles contenus donc dans la commande n°1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CREATE COMMANDE (NUMERO AS INT, LISTE_ARTICLES as VARCHAR(MAX)) INSERT INTO COMMANDE SELECT 1, 'blablabla....#A3;A2;A4;A1# ......blablabla'
Soit la table ARTICLESARETIRER qui contient une liste des articles à retirer par commande :
Donc le but serait de faire un UPDATE sur COMMANDE pour retirer de façon ensembliste et en une seule fois A1 et A3 de la commande n°1 (et donc obtenir 'blablabla....#A2;A4# ......blablabla') à partir de la table ARTICLESARETIRER. Sachant que je dois obligatoirement utiliser un REPLACE car je ne suis pas à même de reconstruire la colonne LISTE_ARTICLE en excluant simplement les valeurs de la table ARTICLESARETIRER.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE ARTICLESARETIRER (NUMERO AS INT, ARTICLE AS CHAR(2) ) INSERT INTO ARTICLESARETIRER SELECT 1, 'A1' INSERT INTO ARTICLESARETIRER SELECT 1, 'A3'
Or actuellement je ne sais faire qu'en utilisant un curseur
Merci d'avance pour vos suggestions.
Partager