SQL Pas Comme Instruction de ne pas travailler
J'ai le code suivant à l'intérieur d'une procédure stockée.
WHERE
WPP.ACCEPTED = 1 AND
WPI.EMAIL LIKE '%@MATH.UCLA.EDU%' AND
(WPP.SPEAKER = 0 OR
WPP.SPEAKER IS NULL) AND
WPP.COMMENT NOT LIKE '%CORE%' AND
WPP.PROGRAMCODE = 'cmaws3'
Le PAS COMME la déclaration n'est pas de travail, et oui avant que quelqu'un dit quelque chose il y a des articles avec le COMMENTAIRE de la colonne qui ne comprennent pas de BASE et toutes les autres colonnes sont ok.
Personne ne sait ce qui est mal à cela?
- Qu'entendez-vous par "ne fonctionne pas"? Lancer une exception? Ou c'est juste toujours évaluée comme fausse?
- Pourriez-vous s'il vous plaît poster les valeurs d'une ligne qui, à votre avis, devraient être retournés, mais il ne l'est pas?
- si vous obtenez une réponse qui répond à la question que vous avez demandé, s'il vous plaît "accepter" la réponse en cliquant sur la case ci-dessous le nombre de votes.
- Billet de dix livres - merci beaucoup, c'est ce genre de petites choses qui me frustré, donc facile à droite il y a dans votre visage des choses. Je vous remercie, mais qui a très bien fonctionné.
- Raj - en réalité, j'étais pas au courant que j'étais censé cliquez sur la case à cocher. C'est ainsi que je marque de la réponse qui a travaillé tout?
@mattgcon
: il est mis à jour dans une tâche cron. Il faudra un certain temps avant de mises à jour, mais il est complètement en vaut la peine.- ah ok, merci à vous tous. C'est le meilleur site que j'ai trouvé de l'aide. J'espère qu'un jour je serai en mesure de répondre à quelques questions pour les autres un jour
Vous devez vous connecter pour publier un commentaire.
Si
WPP.COMMENT
contientNULL
, la condition ne sera pas du match.Cette requête:
retournera rien.
Sur un
NULL
colonne, les deuxLIKE
etNOT LIKE
à l'encontre de toute la chaîne de recherche sera de retourNULL
.Pourriez-vous s'il vous plaît poster les valeurs d'une ligne qui, à votre avis, devraient être retournés, mais il ne l'est pas?
Est la valeur de votre COMMENTAIRE particulier de la colonne est nulle?
Parfois AIME PAS ne pas savoir comment se comporter correctement autour de valeurs null.
Je viens de tomber sur le même problème, et résolu, mais pas avant que j'ai trouvé ce post. Et de voir que votre question n'a pas vraiment répondu, voici ma solution (qui nous l'espérons travailler pour vous, ou quelqu'un d'autre la recherche de la même chose que j'ai fait;
Au lieu de;
Essayer;
Fondamentalement déplacer le "PAS" de l'autre côté du terrain, j'ai été l'évaluation a fonctionné pour moi.
null
n'est pas égal à rien, même pas lui-même. Si vous souhaitez inclure les valeurs null, soit l'ajout d'une condition ieOR Column IS NULL
ou de l'utilisationCOALESCE
de sorte que la valeur n'est jamais null.Viens de tomber sur ce, la réponse est simple, l'utilisation
ISNULL
. SQL ne retourne les lignes si le champ de test n'a aucune valeur (dans certains dossiers) lorsque vous faites une comparaison de texte de recherche, par exemple:Donc, vous avez temporairement remplacer une valeur dans la
null
(vide) documents à l'aide de laISNULL
de commande, par exemple,Ce sera ensuite montrer tous vos enregistrements qui ont des valeurs nulles et omettre aucun de ceux qui ont vos critères de correspondance. Si vous le vouliez, vous pourriez mettre quelque chose dans la des virgules pour vous aider à vous rappeler, par exemple,
mattgcon,
Devrait fonctionner, pensez-vous avoir plus de lignes si vous exécutez la même requête SQL les "PAS COMME" la ligne en commentaire? Si non, vérifier les données. Je sais que vous avez mentionné dans votre question, mais de vérifier que l'instruction SQL à l'aide de cette clause. Les autres réponses avec des valeurs NULL sont aussi une bonne idée.