[温习SQL]2.sql的排序检索与数据过滤

本文介绍了SQL中如何进行排序检索数据,包括指定排序方向(升序和降序)、使用WHERE子句进行数据过滤,以及如何结合NOT关键字进行更高级的数据筛选。通过示例展示了如何根据prod_price对产品数据进行排序,并演示了WHERE子句的不同操作符以及AND、OR和NOT关键字的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sql的排序检索与数据过滤

排序检索数据


EX1:对prod_name列以字母顺序排序数据

SELECT prod_name
FROM Products
ORDER BY prod_name;

EX2:对多列进行排序,按照sql语句的关键字先后来进行排序,当前一个关键字相同时,再按后面的关键字来排序:

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY 2, 3;

output:
prod_id prod_price prod_name
| prod_id |prod_price|prod_name
|----------------|-------------------------------|-----------------------------|
BNBG02 3.4900 Bird bean bag toy
BNBG01 3.4900 Fish bean bag toy
BNBG03 3.4900 Rabbit bean bag toy
RGAN01 4.9900 Raggedy Ann
BR01 5.9900 8 inch teddy bear
BR02 8.9900 12 inch teddy bear
RYL01 9.4900 King doll
RYL02 9.4900 Queen doll
BR03 11.9900 18 inch teddy bear

tip:给出的第二个例子是表的列相对位置来进行排列


指定方向

EX3:数字降序索引

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;

(多列版本):
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC, prod_name;

tips:
1.假如想在多列上进行降序,每一列都需要制定DESC关键字;
2.如果不采用DESC,默认ASC(升序);
3.遇到大小写字母的文本,一般不分先后;


过滤数字

EX4:索引结果必须是prod_price值为3.49的行。

SELECT prod_name, prod_price FROM Products WHERE prod_price = 3.49;

  • 注意:同时使用ORDER BY和WHERE,必须使ORDER BY在WHERE之后。

WHERE子句操作符

对WHERE子句的操作符有如下:
在这里插入图片描述

  • 注意:!=和<>基本一致。但ACCESS支持<>但不支持!=

下给出一些表述以及对应的子句操作符例子:

要求操作
5到10之间BETWEEN 5 AND 10
不包含值时WHERE XXX IS NULL

更高级的数据过滤

  • AND关键字和OR关键字,跟在WHERE后面,字如其意
  • 为了避免操作符优先级产生的问题,可以用"()"对操作符进行分组消除歧义
要求WHERE子句
v_id = 'a’同时prod_price小于等于4WHERE v_id = ‘a’ AND prod_price <= 4
v_id = 'a’或者prod_price小于等于4WHERE v_id = ‘a’ OR prod_price <= 4
v_id为DLL01或BRS01,且price大于等于10WHERE (v_id = ‘DLL01’ OR v_id = ‘BRS01’) AND prod_price >= 10;

关于NOT关键字

EX5:选取vend_id 不是 'DLL01’的prod_name

SELECT prod_name
FROM Products
WHERE NOT vend_id = ‘DLL01’
ORDER BY prod_name;

tip:同样的逻辑,使用<>也可以办到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值