Bonjour
Je recherche actuellement un moyen de faire une requete ou les noms de colonnes et les valeurs recherchées seraient dynamiques.
Je développe :
J'ai dans une table 6 colonnes nommées lang_fr, lang_en, lang_es, .... je dois rechercher par exemple un mot dans une colonne (imaginons 'developpement' dans la colonne lang_fr) et trouver son correspondant dans une autre langue (qui est définie par un paramettre externe)
Je me suis tournée vers une fonction qui possede une requete dynamique qui est la suivante au moment ou j'ecris ces lignes :
Le seul resultat que j'obtiens est deux colonnes avec plein de lang_fr dans l'une et plein de lang_en dans l'autre....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 BEGIN -- Declaration DECLARE @ResultatTraduit VARCHAR(max) DECLARE @ResultatOrigine VARCHAR(max) DECLARE @sql VARCHAR(max) -- Element a mettre en commentaire à la fin car passerons en paramettre DECLARE @langueCible VARCHAR(7) DECLARE @langueBase VARCHAR(7) DECLARE @motRecherche VARCHAR(max) SET @langueCible = 'lang_en' SET @langueBase = 'lang_fr' SET @motRecherche = 'Developpement' -- Creation d'un curseur qui va recuperer les données DECLARE get_lines CURSOR FAST_FORWARD FOR SELECT @langueCible, @langueBase FROM t0 -- Pour le resultat recuperé on l'insere dans @ResultatTraduit et on libere le curseur OPEN get_lines IF @langueBase = @motRecherche FETCH NEXT FROM get_lines INTO @ResultatTraduitTraduit, @ResultatOrigine CLOSE get_lines DEALLOCATE get_lines print('----') print(@ResultatTraduit) -- Return the result of the function --RETURN @ResultatTraduit END
Auriez vous une solution pour que je ne remonter bien que mes 2 valeurs souhaitées ?
En vous remerciant à l'avance
Partager