Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/12/2010, 03h28   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 11
Points : 4
Points : 4
Par défaut Question de syntaxe novice

Bonjour, je débute en Transact SQL (j'ai commencé hier..), et je ne parviens pas a faire une requête du type :

Code :
1
2
3
4
5
6
7
8
9
SELECT champ FROM TABLE
IF champ != 'truc'
BEGIN
/* Fais pleins de supers trucs */
END
ELSE
BEGIN
/* Fais autre chose */
END
Apparemment je ne peux pas utiliser directement le terme 'champ'. Sur internet, en ce qui concerne les comparaisons, j'ai constaté que certains créent une variable, et utilisent une commande du type :
Code :
1
2
3
4
DECLARE @supervariable varchar(30)
SELECT @supervariable = champ FROM TABLE
IF @supervariable != 'truc'
[ETC...]
Bref, c'est quelque chose de bien simple que je demande :). Comment faire une comparaison entre la valeur d'un champ qu'on a récupéré et une autre valeur quelconque ?
Blocks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 10h46   #2
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Lisez les règles du forum
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 10h56   #3
Membre confirmé
 
Inscription : mars 2004
Messages : 388
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 388
Points : 287
Points : 287
Envoyer un message via MSN à ricky78
Bonjour

Essaye çà - > Click ici

cordialement
ricky78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 13h55   #4
Invité de passage
 
Inscription : décembre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 11
Points : 4
Points : 4
> zinzineti

J'ai édité mon message en insérant des balises de code.
Pour ce qui est de vous faire créer des tables pour vous faire essayer, je n'en vois pas l'utilité. Le problème est très simple, si simple que quelqu'un ayant la réponse n'en a pas besoin.

> ricky78

Réponse pertinente. Je me cite :
Citation:
Sur internet, en ce qui concerne les comparaisons, j'ai constaté que certains créent une variable, et utilisent une commande du type :
A mon avis, ca veut dire que j'ai déjà fait des recherches, et beaucoup. Mais félicitations, vous brillez par l'inutilité de votre réponse. Grâce à ce topic, vous avez néanmoins pu ressortir ce gadget google que vous adorez tellement. De plus, j'attache beaucoup d'importance a une réponse de 6 mots avec 2 fautes d'orthographe.

Je vais décrire ma question :

Je récupère une ligne, dans laquelle j'ai le champ 'monchamp'.
Je voudrais pouvoir comparer 'monchamp'.
Complexe n'est-il pas ?

Mais après ca, si vous avez un tutoriel instructif à me conseiller, n'hésitez pas, je n'en ai pas trouvé.

Merci à l'avance de toute réponse constructive.
Blocks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 15h00   #5
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

Quel est le problème avec la solution que vous avez trouvée ?

Voulez vous faire votre IF pour toutes les lignes renvoyées par votre requete ?
dans ce cas utilisez les curseurs (enfin en fonction de ce que voulez faire, il y aura surement mieux...)

Sinon, si votre requete ne vous retourne qu'une seule ligne, vous pouvez aussi faire directement
Code sql :
1
2
3
4
5
6
7
8
9
 
IF( (SELECT MaColonne FROM MaTable WHERE MonID = 1) != 'truc')
BEGIN
...
END
ELSE
BEGIN
... 
END
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 15h03   #6
Invité de passage
 
Inscription : décembre 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 11
Points : 4
Points : 4
Merci beaucoup je vais essayer.

EDIT: Je n'ai pas l'habitude des SELECT imbriqués dans d'autres instructions, mais vous avez surement raison. Oui ma requête ne retourne qu'un champ et qu'une ligne, donc votre solution m'a l'air tout à fait appropriée.
Je vous remercie, je met le topic en 'résolu'.
Blocks est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web