SQL:过滤数据

本文介绍了如何使用SQL中的DISTINCT关键字去除重复数据,以及WHERE子句结合AND和OR运算符进行复杂条件筛选。通过实例展示了如何从数据表中选择唯一的值、基于特定条件过滤行,并解释了比较运算符的使用。

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

过滤数据:

  1. Select Distinct子句

SELECT DISTINCT 子句检索指定列列表中的唯一不同值,换句话说,它从结果集中删除列中的重复值。 DISTINCT 子句将所有 NULL 值视为相同的值。

SQL SELECT DISTINCT 语句

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词 DISTINCT 用于返回唯一不同的值。

语法:

 

使用 DISTINCT 关键词

如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:

 

"Orders"表:

 

结果:

 

请注意,在结果集中,W3School 被列出了两次。

如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:

 

结果:

 

现在,在结果集中,"W3School" 仅被列出了一次。

2.SQL Server WHERE子句

要从表中获取满足一行或多个条件的行,请使用 WHERE 子句,如下所示:

 

 在 WHERE 子句中,指定搜索条件以过滤 FROM 子句返回的行。 WHERE 子句仅返回导致搜索条件计算为 TRUE 的行。搜索条件是逻辑表达式 或多个逻辑表达式的组合。

WHERE 子句用于规定选择的标准。

WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法

 

下面的运算符可在 WHERE 子句中使用:

 

注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。

使用 WHERE 子句

如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:

 

"Persons" 表

 

结果:

 

引号的使用

请注意,我们在例子中的条件值周围使用的是单引号。

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

文本值:

 

数值:

 

3. (>,=,<)使用比较运算符

以下语句查找价格大于 300 且型号为 2018 的产品。

 

4.AND 查找满足两个条件的行

AND 是一个逻辑运算符,用于组合两个布尔表达式

5. OR 查找满足任意一个条件的行

OR 是一个逻辑运算符,用于组合两个布尔表达式

在语句中使用多个逻辑运算符时,SQL Server将在 AND 运算符之后计算 OR 运算符。 但是,可以使用括 号更改评估顺序。

SQL AND & OR 运算符

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

AND 和 OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

原始的表 (用在例子中的):

 

AND 运算符实例

使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:

 

结果:

 

OR 运算符实例

使用 OR 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人:

 

结果:

 

结合 AND 和 OR 运算符

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

 

结果:

 

以上就是我最近新学习到的新的知识内容,现在分享给你们,希望可以帮助到你们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值