Salut,
J'expose d'abord ce que j'ai pour ensuite exposer ce que je souhaite obtenir.
J'ai une table PROFIL contenant une colonne POIDS :J'en tire un jeu de poids suivant une condition "différent de g, h ou i"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11POIDS ----- a b c d e f g h i
Ceci me retournant bien une table #tmp contenant a, b, c, d, e et f.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select distinct POIDS into #tmp from PROFIL where isnull(POIDS, '')<>'' and charindex(POIDS, 'ghi')=0
Je souhaite ensuite parcourir une table DROIT :Afin d'en supprimer tout droit n'étant pas g, h ou i. D'où ma table #tmp retournant tous les autres droits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8ID_DROIT POIDS ----------- ---------- droit1 i droit2 abcdfghie droit3 acdefghi droit4 droit5 droit6 abcdefghi
Mon souci est que je fais un update pour supprimer ces droits :qui me supprime qu'un seul poids à la fois. Si je l'exécute une fois j'obtiens dans ma table droit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 update top(10) DROIT set POIDS = replace(d.POIDS, t.POIDS, '') from DROIT d join #tmp t on d.POIDS like '%'+ t.POIDS +'%' and isnull(d.POIDS, '') <> ''ou je souhaiterais obtenir, si possible sans faire de boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8ID_DROIT POIDS ----------- ---------- droit1 i droit2 bcdfghie droit3 cdefghi droit4 droit5 droit6 bcdefghi
Savez-vous si c'est possible sans boucler? Si oui, comment faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8ID_DROIT POIDS ----------- ---------- droit1 i droit2 ghi droit3 ghi droit4 droit5 droit6 ghi
Merci par avance.
Partager