SQL des conditions dans une vue, c possible !? - SQL/NoSQL - Programmation
Marsh Posté le 24-04-2002 à 15:44:52
c quoi ça !? la fonction decode ? tu peux préciser un peu stp ?
Marsh Posté le 24-04-2002 à 15:50:23
ç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]
Marsh Posté le 24-04-2002 à 16:17:45
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.
Marsh Posté le 24-04-2002 à 16:31:59
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...
Marsh Posté le 24-04-2002 à 16:49:51
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
Marsh Posté le 24-04-2002 à 17:32:20
- 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 !?
Marsh Posté le 24-04-2002 à 21:38:21
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 :
|
2eme vue
Code :
|
3eme vue:
Code :
|
qq chose du genre
PS:niveau perf c'est pas le top
Marsh Posté le 25-04-2002 à 08:58:13
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 ?
Marsh Posté le 25-04-2002 à 09:10:06
- Renaud - a écrit a écrit : non: 1ere vue
|
Yess, bonne idée...
J'peux pas essayer maintenant, ms logiquement ça devrait coller ton truc !
Merci...
Marsh Posté le 25-04-2002 à 09:38:18
Trop fort Renaud, ça marche !
Nickel, merci beaucoup. (si t'as des pbs en C/C++, je serais là... )
Marsh Posté le 25-04-2002 à 17:51:30
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à... ) |
Euh non, je suis pas specialiste SQL mais plutot Object alors le C++ c'est pas trop un probleme
merci qd meme
Marsh Posté le 26-04-2002 à 14:09:25
- 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...
Marsh Posté le 26-04-2002 à 17:18:46
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.
Marsh Posté le 29-04-2002 à 09:56:17
- 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.
Marsh Posté le 24-04-2002 à 15:37:15
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 ?