PostgreSQL 10 SELECT WHERE 语句

标签 postgresql range

我目前是 PostgreSQL 新手,正在学习版本 10.14。正在使用 WHERE 运算符处理 SELECT 命令,但在使用 NOT 选项时感到困惑。

目标:检索特定范围内的数据; “分数小于等于 35 且大于等于 60”。

问题:两种语法的区别,结果不同?

SELECT name FROM science_class WHERE science_marks not between 35 and 60;   
SELECT name FROM science_class WHERE science_marks<=35 AND science_marks>=60;

谢谢你, Hermes 架构

最佳答案

你的想法几乎是正确的。

TL;DR:您的第二个查询应该是 SELECT name FROM science_class WHERE science_marks < 35 OR science_marks > 60;

  1. 它应该是 OR 而不是 AND,因为它应该满足其中一个条件。对于And,两个条件都必须满足,这是不可能的

  2. 当您说 NOT BETWEEN 35 AND 60 时,您排除了 35 和 60,因此您应该使用 < 或 >,而不是 <= 或 >=

关于PostgreSQL 10 SELECT WHERE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63787350/

相关文章:

sql - 用单个值和总和替换值集

postgresql - 与没有函数包装器的查询相比,SQL 函数非常慢

javascript - 如何用 div 作为背景模仿 JS 范围/选择?

java - 确定偏移量是否在行号之间?

double - Kotlin 中使用数据类型 Double 的范围

c++ - 数据类型范围作为节省内存的措施是否重要?

SQL 架构设置

sql - View 的顺序是否有保证?

postgresql - 如何使 Postgres 字符字段可按数字排序

javascript - 未捕获的 DOMException : Failed to execute 'setStart' on 'Range' : The offset is larger than the node's length