Bonjour,
je suis devant un petit problème et je me demande quel est le meilleur moyen pour arriver à mes fins.
Voici le souci, j'aimerais rechercher une valeur (en réalité 2), dans plusieurs colonnes (qui sont des colonnes de commentaires).
Ainsi, j'ai une table de la forme :
ref, com1, com2, com3, ..., com16
Ce que je fais actuellement, je passe par une requête dynamique :
Cette méthode convient tout à fait mais je voulais savoir s'il y avait mieux pour arriver à mes fins?
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
33
34
35
36
37 CREATE TABLE #com (comm varchar(200) NULL) DECLARE @cpt_com int, @haut varchar(200), @larg varchar(200), @requete varchar(200) SET @cpt_com = 1 WHILE @cpt_com < 16 -- com1 a com15 dans e_pco BEGIN DELETE #com -- On a @haut & @larg IF @haut IS NOT NULL AND @larg IS NOT NULL BREAK -- Recherche de haut ou larg dans le champs com courant SELECT @requete = "INSERT #com" + " SELECT UPPER(com" + LTRIM(CONVERT(varchar, @cpt_com)) + ")" + " FROM <db>..<table>" + " WHERE ref = '1234'" + " AND (UPPER(com" + LTRIM(CONVERT(varchar, @cpt_com)) + ") LIKE 'haut : %'" + " OR UPPER(com" + LTRIM(CONVERT(varchar, @cpt_com)) + ") LIKE 'larg : %')" EXECUTE (@requete) IF @@ROWCOUNT = 0 BEGIN SELECT @cpt_com = @cpt_com + 1 CONTINUE END -- Mes traitements -- [...] SELECT @cpt_com = @cpt_com + 1 END -- Fin recherche com
P.S : SGBD utilisé Sybase ASE (v12)
Partager