Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1129 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL Server -> Peut on avoir un champ Dynamique dans une clause WHERE ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL Server -> Peut on avoir un champ Dynamique dans une clause WHERE ?

n°1349395
massamu
Posté le 19-04-2006 à 10:35:22  profilanswer
 

Bonjour :hello:
 
Je me posais une question, qui pourrais me faciliter le travail.
 
Peut on avoir un champ dynamique dans une clause WHERE ,
 
JE M'explique :  
 
J'ai une procédure stockée.
Si je lui passe en paramètre par exemple "3" j'aimerais que ma requete soit du style  
 
SELECT ... FROM ... WHERE CHAMP3 = 2
 
Si je lui passe en paramètre par exemple "7" j'aimerais que ma requete soit du style  
 
SELECT ... FROM ... WHERE CHAMP7 = 2
 
En gros si je lui passe X
 
SELECT ... FROM ... WHERE CHAMPX = 2
 
Est-ce possible ?
 
J'ai essayé dans ma procstock en faisant un  
 
DECLARE @ERR varchar(20)
SET @ERR = 'CHAMP'+@PARAM
 
Puis en mettant WHERE @ERR = 2
 
Mais sa ne fonctionne pas :(


---------------
Selon les dernières sources, il y aurait de plus en plus d'étrangers dans le monde...
mood
Publicité
Posté le 19-04-2006 à 10:35:22  profilanswer
 

n°1349403
thithanne
Posté le 19-04-2006 à 10:45:56  profilanswer
 

Tu pourrais écrire toute ta requete en fonction de conditions dans une variable texte que tu executerais ensuite. Ex :
DECLARE  
 @v_SQL    VARCHAR(2000)
BEGIN
             SET @v_SQL = 'ta requete en fonction de tes conditions'
             EXEC (@v_SQL)
END

n°1349422
massamu
Posté le 19-04-2006 à 11:03:34  profilanswer
 

Ha d'accord, pas con je vais essayé ca ;) :jap:


---------------
Selon les dernières sources, il y aurait de plus en plus d'étrangers dans le monde...
n°1351345
Arjuna
Aircraft Ident.: F-MBSD
Posté le 21-04-2006 à 15:56:20  profilanswer
 

autre solution, plus performante, plus plus chiante à lire/écrire :
 

Code :
  1. select val
  2. from matable
  3. where (@nomchamp != 'champ1' or champ1 = @valchamp)
  4. and (@nomchamp != 'champ2' or champ2 = @valchamp)
  5. and (@nomchamp != 'champ3' or champ3 = @valchamp)
  6. and (@nomchamp != 'champ4' or champ4 = @valchamp)
  7. and (@nomchamp != 'champ5' or champ5 = @valchamp)


 
Avec :
@nomchamp : le nom du champ sur lequel porte le filtre
@valchamp : la valeur de filtre sur ce champ


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL Server -> Peut on avoir un champ Dynamique dans une clause WHERE ?

 

Sujets relatifs
Windev export fichier SQL ???Champ de récupuration d'un fichier
[ODBC] Créer un lien entre Access 2000 et Pervasive SQL v.7requetes SQL: choix entre 2 methodes
Le '%' du SQL existe-t-il en javascriptFonction SQL => Enregistrement au Hasard
dans un sujet d'examen (SQL)COM et WMI pour acceder a la base SAM de windows server 2003 std
lecture "dynamique" d'un fichier sous Unix[Mainframe OS390] SQL et date dans un JCL
Plus de sujets relatifs à : SQL Server -> Peut on avoir un champ Dynamique dans une clause WHERE ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR