Choisir ENTRE les valeurs de la colonne
Je suis en train d'utiliser le ENTRE avec les noms de colonnes au lieu de directement des valeurs, quelque chose comme ceci:
SELECT * FROM table WHERE column1 BETWEEN column2 AND column3;
C'est de retourner quelque chose comme 17 lignes, mais si j'écris:
SELECT * FROM table WHERE (column1 <= column2 AND column1 >= column3) OR (column1 >= column2 AND column1 <= column3)
- je obtenir autour de 600 lignes.
Dans les deux cas, je ne reçois que des lignes où colonne1 valeur est la valeur du milieu, mais la 2ème méthode me donne beaucoup plus de résultats, de sorte que la 1ère méthode a quelque chose de mal avec elle.
Je soupçonne que le problème est peut-être sur l'aide ENTRE les articles avec les noms de colonne, au lieu de pures valeurs, et en quelque sorte SQL est en train de convertir les noms de colonne à valeurs réelles..c'est étrange, mais quelqu'un peut-il m'éclairer s'il vous plaît?
Grâce
- La lecture de mes question 2 ans plus tard...même Pas je peux comprendre ce que je m'attendais à la requête de travailler...
Vous devez vous connecter pour publier un commentaire.
est la même que
À cause de votre plus vérifier de
qui est
OR
ed, vous obtenez des lignes supplémentaires.Between A And B
suppose queA<B
, c'est à dire, que la première expression de la Entre les, (A
), est inférieure à la deuxième expression, (B
), il ne permet pas de vérifier ou de les exécuter avec l'option inverse.par exemple, si vous mettez
Where 3 Between 4 And 2
pas de lignes sera retourné:ou, si vous écrivez
Select Case When 3 Between 4 and 2 then 'true' else 'false' end
il sera de retour
false
Votre logique pour les deux états n'est pas la même:
A deux clauses. Supprimer le premier et vous devriez avoir les mêmes résultats que votre entre la déclaration.