|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
Bonjour
Avant toute chose : j'utilise ASE version 15.0. Voilà ma requête : Code :
Code :
Code :
Une autre question, cette requête est-elle portable ou bien est-ce une syntaxe propre à Sybase (il semblerait que Sybase ne reconnaisse pas les alias si ceux-ci sont "appelés" en dehors des parenthèses dans lesquels ils sont déclarés...) Merci d'avance |
||||||
|
|
00
|
|
|
#2 | ||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
J'ai trouvé cette requête qui a l'air de fonctionner :
Code :
Merci d'avance si vous avez la réponse à ma question |
||
|
|
00
|
|
|
#3 | ||||
|
Membre du Club
![]() Développeur Web Inscription : décembre 2005 Messages : 110 ![]() |
J'ai un nouveau souci avec cette requête, et plus particulièrement avec ce morceau là :
Code :
Mon problème est qu'au lieu de me renvoyer null, ça me renvoit false (0) : Code :
Je me demande si ce n'est pas parce que le champ concerné est de type 'bit', et qu'une valeur null y est interdite. Merci pour votre aide |
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Attention, il faut bien avoir à l'esprit que NULL signifie "INCONNU" ou "sans objet", ce n'est pas une valeur, mais l'absence de valeur. C'est un peu comme les "ne se prononce pas" dans les sondages... Donc lorsqu'on demande à une base de donnée de comparer une colonne de valeur inconnue à une autre colonne de valeur inconnue, cette dernière ne peux pas répondre... la réponse exacte devrait être "JE SAIS PAS" ou "PTET BEN QU'OUI, PTET BEN QU'NON" mais ce genre de réponse n'étant pas prévue, elle répond systématiquement "NON".
Ca peut paraitre paradoxal mais (NULL = NULL) répond FAUX, (NULL <> NULL) répond FAUX aussi, en fait dés qu'il y a NULL dans une comparaison, la réponse est systématiquement négative sauf à la question "isnull". C'est pour ça que toutes les lignes ayant null dans une colonne de jointure seront rejetées.... |
|
|
00
|
|
|
#5 | |||||||||
![]() ![]() |
Citation:
Code :
Code :
Code :
Code :
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql Administrateur SAP Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums ! |
|||||||||
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 024 ![]() |
Oui j'ai un peu résumé, il est vrai que sybase a cette tolérance de faire l'équivalence entre "isnull" et "=NULL" ce qui est lamentable à mon avis, puisque ça mène justement à la confusion que je dénonçait plus haut.
Mais attention, cette tolérance disparait dans les jointures!! La preuve: Code :
|
||
|
|
00
|
|
|
#7 |
![]() ![]() |
A tout ceci il faut ajouter que le comportement des valeurs NULL peut être modifié via l'option ANSI_NULL (p.ex. SET ANSI_NULL ON). Si cette option est positioné alors les égalités avec NULL ne sont pas tolérées.
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com