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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL des conditions dans une vue, c possible !?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL des conditions dans une vue, c possible !?

n°130239
El_gringo
Posté le 24-04-2002 à 15:37:15  profilanswer
 

En fait, pour des raison trop compliquées à expliquer sur le forum, j'aurai besoin de pouvoir écrire une vue avec une condition.
Je m'explique.
pour l'instant, g cette vue là:
[/CODE]
CREATE VIEW dbo.UTILISATEURS
AS
SELECT LOGIN AS UTIL, PASSWD AS PASSWORD,  
    USERNAME AS NOMUTIL, 0 AS CPT, 'XX ' AS CONFIG
FROM dbo.D_UTILISATEUR;
[CODE]
 
Cette vue fonctionne, ms pas tt à fait comme je voudrais.
Je voudrais éviter que le champ CONFIG contienne les 'XX' en dur.
Il faudrais que, SI le champ IsManager de la table D_UTILISATEUR est à 1, alors le champs CONFIG de la vue apparait à 'XX', sinon, il apparait à 'X '.
 
2 questions:
 - quelqu'un a t il compris qqch à mes explication quelque peu bordeliques ?
 - toi qui à compris ce dont g besoin, tu crois que c faisable ? et si oui; comment ?

mood
Publicité
Posté le 24-04-2002 à 15:37:15  profilanswer
 

n°130245
ddr555
Posté le 24-04-2002 à 15:43:34  profilanswer
 

oui c'est possible, avec la fonction decode

n°130249
El_gringo
Posté le 24-04-2002 à 15:44:52  profilanswer
 

c quoi ça !? la fonction decode ? tu peux préciser un peu stp ?

n°130253
ddr555
Posté le 24-04-2002 à 15:48:23  profilanswer
 

c'est quoi ta base de données ???

n°130254
El_gringo
Posté le 24-04-2002 à 15:50:23  profilanswer
 

ça peut être n'importe quelle base de données. C pour un soft qui fonctionne avec toutes les bases de données (Oracle, BD2, MySQL, SQL Server, ...)
decode c une fonction spécifique à une DB, c ça !?
c pour ça que je précisais SQL: c pour du SQL pur que je pose ma question..

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 24-04-2002 à 15:50:51--[/jfdsdjhfuetppo]

n°130269
ddr555
Posté le 24-04-2002 à 16:04:42  profilanswer
 

oui c'est une fonction propre :/

n°130278
irulan
Posté le 24-04-2002 à 16:17:45  profilanswer
 

Syntaxe de DECODE sous Oracle :
 
SELECT LOGIN AS UTIL, PASSWD AS PASSWORD,  
   USERNAME AS NOMUTIL, 0 AS CPT, DECODE(IsManager, 1,'XX','X';) FROM dbo.D_UTILISATEUR;
 
Explication générale :  
DECODE (Nom_champ_de référence, Valeur1_ref, Valeur1_renvoyée, Valeur2_ref, Valeur2_renvoyée, Valeur3_ref, Valeur3_renvoyée,..., Valeur_par_defaut)
 
NB Valeur_par_defaut n'est pas obligatoire, elle correspond en fait à la valeur renvoyée quand aucune condition précédente n'est satisfaite. Si Valeur_par_defaut n'est pas renseignée, DECODE renvoie NULL si aucune condition n'est remplie.

n°130285
El_gringo
Posté le 24-04-2002 à 16:31:59  profilanswer
 

irulan a écrit a écrit :

Syntaxe de DECODE sous Oracle :
 
SELECT LOGIN AS UTIL, PASSWD AS PASSWORD,  
   USERNAME AS NOMUTIL, 0 AS CPT, DECODE(IsManager, 1,'XX','X';) FROM dbo.D_UTILISATEUR;
 
Explication générale :  
DECODE (Nom_champ_de référence, Valeur1_ref, Valeur1_renvoyée, Valeur2_ref, Valeur2_renvoyée, Valeur3_ref, Valeur3_renvoyée,..., Valeur_par_defaut)
 
NB Valeur_par_defaut n'est pas obligatoire, elle correspond en fait à la valeur renvoyée quand aucune condition précédente n'est satisfaite. Si Valeur_par_defaut n'est pas renseignée, DECODE renvoie NULL si aucune condition n'est remplie.  




 
C gentil, ms je viens d'expliquer pourquoi je peux pas utiliser qqch de spécifique à nu SGBD (ni Oracle, ni aucun autre).
ça doit être en SQL pur.
Du coup, je doute que ça soit faisable, ms bon.
Desfois que...

n°130309
- Renaud -
Posté le 24-04-2002 à 16:49:51  profilanswer
 

el_gringo a écrit a écrit :

 
 
C gentil, ms je viens d'expliquer pourquoi je peux pas utiliser qqch de spécifique à nu SGBD (ni Oracle, ni aucun autre).
ça doit être en SQL pur.
Du coup, je doute que ça soit faisable, ms bon.
Desfois que...  




 
Tu doit pouvoir t'en sortir en creeant 2 vues intermediaires (une pour X, une pour XX), puis une troisieme vue qui est l'union des deux.
 
tiens je sais pas si on peut creer une vue sur une vue...
 
Renaud

n°130342
El_gringo
Posté le 24-04-2002 à 17:32:20  profilanswer
 

- Renaud - a écrit a écrit :

 
 
Tu doit pouvoir t'en sortir en creeant 2 vues intermediaires (une pour X, une pour XX), puis une troisieme vue qui est l'union des deux.
 
tiens je sais pas si on peut creer une vue sur une vue...
 
Renaud  




 
Y a de l'idée...
Ms en y réfléchissant, je m'dis que ça n'fait que repousser le problème. Il me faudrai encore, dans ma 3e vue, (qui lie les 2 autres), pouvoir exprimer ma condition !
Y te semble pas !?

mood
Publicité
Posté le 24-04-2002 à 17:32:20  profilanswer
 

n°130417
fabd
Posté le 24-04-2002 à 20:07:00  profilanswer
 

tu fais une procedure stocké ? no ?

n°130442
- Renaud -
Posté le 24-04-2002 à 21:38:21  profilanswer
 

el_gringo a écrit a écrit :

 
 
Y a de l'idée...
Ms en y réfléchissant, je m'dis que ça n'fait que repousser le problème. Il me faudrai encore, dans ma 3e vue, (qui lie les 2 autres), pouvoir exprimer ma condition !
Y te semble pas !?  




 
non:
1ere vue

Code :
  1. CREATE VIEW dbo.UTILISATEURS1
  2. AS
  3. SELECT LOGIN AS UTIL, PASSWD AS PASSWORD, 
  4.    USERNAME AS NOMUTIL, 0 AS CPT, 'XX ' AS CONFIG
  5. FROM dbo.D_UTILISATEUR where isManager = 1;

 
 
2eme vue

Code :
  1. CREATE VIEW dbo.UTILISATEURS2
  2. AS
  3. SELECT LOGIN AS UTIL, PASSWD AS PASSWORD, 
  4.    USERNAME AS NOMUTIL, 0 AS CPT, 'X ' AS CONFIG
  5. FROM dbo.D_UTILISATEUR where isManager = 0;


 
3eme vue:

Code :
  1. CREATE VIEW dbo.UTILISATEURS
  2. AS
  3. select * from dbo.UTILISATEURS1 union select * from dbo.UTILISATEURS2


 
qq chose du genre
PS:niveau perf c'est pas le top

n°130552
El_gringo
Posté le 25-04-2002 à 08:58:13  profilanswer
 

fabd a écrit a écrit :

tu fais une procedure stocké ? no ?  




 
j'connais pas grand chose ds le domaine du SQL.
C quoi une procédure stockée ?

n°130555
El_gringo
Posté le 25-04-2002 à 09:10:06  profilanswer
 

- Renaud - a écrit a écrit :

 
 
non:
1ere vue

Code :
  1. CREATE VIEW dbo.UTILISATEURS1
  2. AS
  3. SELECT LOGIN AS UTIL, PASSWD AS PASSWORD, 
  4.    USERNAME AS NOMUTIL, 0 AS CPT, 'XX ' AS CONFIG
  5. FROM dbo.D_UTILISATEUR where isManager = 1;

 
 
2eme vue

Code :
  1. CREATE VIEW dbo.UTILISATEURS2
  2. AS
  3. SELECT LOGIN AS UTIL, PASSWD AS PASSWORD, 
  4.    USERNAME AS NOMUTIL, 0 AS CPT, 'X ' AS CONFIG
  5. FROM dbo.D_UTILISATEUR where isManager = 0;


 
3eme vue:

Code :
  1. CREATE VIEW dbo.UTILISATEURS
  2. AS
  3. select * from dbo.UTILISATEURS1 union select * from dbo.UTILISATEURS2


 
qq chose du genre
PS:niveau perf c'est pas le top  




 
Yess, bonne idée...
J'peux pas essayer maintenant, ms logiquement ça devrait coller ton truc !
Merci...

n°130567
El_gringo
Posté le 25-04-2002 à 09:38:18  profilanswer
 

Trop fort Renaud, ça marche !
Nickel, merci beaucoup. (si t'as des pbs en C/C++, je serais là... :D)

n°130932
- Renaud -
Posté le 25-04-2002 à 17:51:30  profilanswer
 

el_gringo a écrit a écrit :

Trop fort Renaud, ça marche !
Nickel, merci beaucoup. (si t'as des pbs en C/C++, je serais là... :D)  




 
Euh non, je suis pas specialiste SQL mais plutot Object alors le C++ c'est pas trop un probleme
 
merci qd meme

n°131236
El_gringo
Posté le 26-04-2002 à 14:09:25  profilanswer
 

- Renaud - a écrit a écrit :

 
 
Euh non, je suis pas specialiste SQL mais plutot Object alors le C++ c'est pas trop un probleme
 
merci qd meme  




 
...Un peu d'humilité, ça fait du bien desfois !
Quel que soit sont niveau, on rencontre tous des merdes...

n°131447
- Renaud -
Posté le 26-04-2002 à 17:18:46  profilanswer
 

el_gringo a écrit a écrit :

 
 
...Un peu d'humilité, ça fait du bien desfois !
Quel que soit sont niveau, on rencontre tous des merdes...  




 
Ce que je voulais dire, c'est que c'est plutot en vbscript ou en xsl que je peche.

n°132087
El_gringo
Posté le 29-04-2002 à 09:56:17  profilanswer
 

- Renaud - a écrit a écrit :

 
 
Ce que je voulais dire, c'est que c'est plutot en vbscript ou en xsl que je peche.  




 
ha... J'avais pas compris ça ! c fou...
j'pourrais t'aider ni ds l'un, ni ds l'autre... Ms vbscript en tt cas, ça devrai venir vite, c pas dur j'crois.
Bonne chance.


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

  SQL des conditions dans une vue, c possible !?

 

Sujets relatifs
[SQL] une requête non ordinaire ...[SQL] Date du jour - un jour
Carac. Special + SQL + ASP[oracle SQL] comment recuperer la taille d'un champ ds une table ?
Installer un module Perl par ftp, possible ?[SQL] vues
SQL en chaine au lieu e l'editeur de code sqlSQL : format de date : between date and date
SQL : Requete avec des "and" des "or", et ca marche poProblème de requête SQL avec condition "Where" en vb...
Plus de sujets relatifs à : SQL des conditions dans une vue, c possible !?


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