begin process at 2012 05 26 21:23:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

requete avec IF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

requete avec IF

lundi 27 mars 2006 à 18:35:51 | requete avec IF

gstrit

Bonjour,

J'aimerais faire une requete SQL avec un WHERE conditionel. Pour cela il faut une condition IF dans la requete.
Je voudrais faire un truc du genre :

SELECT *
FROM table
   IF table.id ==1
      BEGIN
         WHERE id == 1
      END

Est ce possible?

Merci d'avance.
mardi 28 mars 2006 à 09:39:56 | Re : requete avec IF

Mindiell

Oui, c'est possible....

Et ton problème vient d'ou exactement ? :)

Mindiell Software
mardi 28 mars 2006 à 09:59:59 | Re : requete avec IF

gstrit

Bonjour,

Mon problème c'est que je connais pas la syntaxe pour une base de données sql server 2005 express et que sur internet je trouve rien. L'exemple que j'ai donné est la syntaxe que je pensais être juste mais apparement c'est pas le cas.

Merci
mardi 28 mars 2006 à 10:08:24 | Re : requete avec IF

Mindiell

Voyons, que peut dire google là-dessus ?

Alors :
[ Lien ]
[ Lien ]
[ Lien ]

Tu verras qu'il est mieux d'utiliser un CASE .. WHEN...

Mais si tu expliquais les données finales que tu souhaites obtenir et les données initiales, je suis sur qu'on pourrait t'aider plus efficacement :)

Mindiell Software
mardi 28 mars 2006 à 11:58:44 | Re : requete avec IF

gstrit

Alors je vais essayer d'être plus précis en expliquant le tout.

Je fais un site en ASP.net 2.0. J'ai une gridview et des dropdownlist qu'on va dire associé à cette gridview permettant de faire des recherches.

Prenont la première dropdownlist qui permet de faire une recherche par rapport à l'ID d'une affaire. Le premier élément de la dropdownlist est un élément que j'ai rentré àla main dont le texte est "toute" et la valeur -1.

Donc dans la requete de ma gridview, il me faut pouvoir faire une requete SQL qui contient une clause where si la valeur selectionner de la dropdownlist est différent de -1 et ne pas faire apparaitre la clause where si la valeur est égale à à -1.

La requete est donc de cette forme :

SELECT *
FROM Affaire
   IF @Search != -1
      BEGIN
         WHERE Affaire.Id = @Search
      END

où @Search est un paramètre venant d'ASPet correspondant à la valeur de l'element selectionner dans la dropdownlist.

Voilà j'espere avoir été clair
mardi 28 mars 2006 à 12:09:30 | Re : requete avec IF

Mindiell

Très clair !

Fais donc ca en programmation :
requete = "SELECT * FROM Affaire "
if (dropdownlist.value>-1)
requete = requete & " WHERE Affaire.Id = " & dropdownlist.value
end if

Et voila :)

Pourquoi se compliquer la vie ?
mardi 28 mars 2006 à 12:15:10 | Re : requete avec IF

gstrit

oui je sais que je peux faire ça comme ça mais j'aurais voulu intégrer ça directement dans le SQL pour des questions de performances et surtout ça permets de pas surcharger mon code c #.

Si tu me dis qu'il n'ya pas d'autres solutions, je ferais comme ça mais j'aimerais néanmoins savoir comment faire pour mettre du if dans ma requete SQL.

Merci pour tes réponses
mardi 28 mars 2006 à 12:21:30 | Re : requete avec IF

gstrit

et puis surtout je sais pas faire ça en c#. Faire une requete je sais faire mais apres la binder avec ma gridview ça devient obscure pour moi
mardi 28 mars 2006 à 12:24:33 | Re : requete avec IF

Mindiell

niveau performances, ca ne fait aucune différence. C'est plus clair de mettre ca dans le code, je trouve, car c'est inhérent à ton programme.

Sinon, utilise ca :
If @Search=-1
BEGIN
SELECT *
FROM Affaire
END
ELSE
BEGIN
SELECT *
FROM Affaire
WHERE Affaire_id = @Search
END
mardi 28 mars 2006 à 12:26:45 | Re : requete avec IF

Mindiell

Et avec la mise en page :

IF @Search=-1
BEGIN
  SELECT *
  FROM Affaire
END
ELSE
BEGIN
  SELECT *
  FROM Affaire
  WHERE Affaire_id = @Search
END

1 2

Cette discussion est classée dans : table, requete, id, where


Répondre à ce message

Sujets en rapport avec ce message

requete croisement de table [ par sdisp ] Bonjour, je souhaiterais pouvoir croiser des ligne dans mon tableau, je expliques, j'ai une table de se genre: id id_suivant référence 1 3 10 2 1 1 une requete qui me casse la tête [ par chmouette ] Salut les gens!Mon problème est purement SQL. J'ai une table Ma Table avec des champs tels que :+-------------------------+ !            MaTable  &nbs Requete pour le classement d'une table [ par superbaloo78 ] Bonjour,J'ai une table mysql avec les champs suivant ...id,nom,tag,pointsJe souhaite sortir le nom, le tag, les points et le classement dans ma table. Problème de clée étrangère [ par emmanuel9 ] Bonjour à tous, Mon problème vient du faite que j'ai plusieurs tables dans une base de données dont une table personne et j'ai un programme qui ecrit CREATE TABLE [ par captusite ] BonjourJe cherche a creer une table qui prendra comme nom la valeur 'NOM' de la table Articles pour la clause WHERE Id=@IdGrilleVoici ce que j'ai pour Probleme creation cles primaires [ par Usual suspect ] Bonjour, comment creer une cle primaire d'une table en fonction d'un cle primaire d'une autre table (exigence du cahier des charges)? Exemple : table Insertion d'un résultat d'une requete [ par nounours21_6 ] Bonjour a tousvoila, j'ai deux tables quasiment identiquela différence se porte sur un champdonc j'ai fais une procédure stockée sous SQL Server 2005 formation dune requete [ par goueg83460 ] bonjour, je voudrais savoir quel forme de requête il faut effectuer pour faire une recherche par rapport a une formulare dans une table et en même tem Grosse Requête.... [ par nounours21_6 ] Bonjour,voila, je bloque sur une requete depuis quelques jours...En faite, un événemet peut etre lié a une ou plusieur villesdonc on a trois tablesdb_ :(((( requete qui merde sur certaine tables !! [ par exyacc ] je comprends plus rien, en fait je copies pls table d'une base A vers une base B (que je crée sans contrainte, sans rien de rien ;o)),je dev avec delp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales