1. Select Distinct子句
SELECT DISTINCT 子句检索指定列列表中的唯一不同值,换句话说,它从结果集中删除列中的重复值。
DISTINCT 子句将所有 NULL 值视为相同的值
语法如下所示:
SELECT DISTINCT
column_name1,
column_name2 ,
...
FROM
table_name;
2. SQL Server WHERE子句
要从表中获取满足一行或多个条件的行,请使用 WHERE 子句,如下所示:
SELECT
select_list
FROM
table_name
WHERE
search_condition;
在 WHERE 子句中,指定搜索条件以过滤 FROM 子句返回的行。 WHERE 子句仅返回导致搜索条件计算为TRUE 的行。搜索条件是逻辑表达式或多个逻辑表达式的组合
通过使用简单的相等来查找行
以下语句检索类别为 id 为 1 的所有产品:
SELECT
product_id, product_name,
category_id, model_year,
list_price
FROM
production.products
WHERE
category_id = 1
ORDER BY
list_price DESC;
3. AND 查找满足两个条件的行
AND 是一个逻辑运算符,用于组合两个布尔表达式
以下示例返回满足两个条件的产品: category_id 为 1 , model_year 为 2018 。
它使用逻辑运算符 AND 来组合这两个条件。
SELECT
product_id, product_name,
category_id, model_year,
list_price
FROM
production.products
WHERE
category_id = 1 AND model_year = 2018
ORDER BY
list_price DESC;
4. (>,=,<)使用比较运算符
以下语句查找价格大于 300 且型号为 2018 的产品。
SELECT
product_id, product_name,
category_id, model_year,
list_price
FROM
production.products
WHERE
list_price > 300 AND model_year = 2018
ORDER BY
list_price DESC;
5. OR 查找满足任意一个条件的行
OR 是一个逻辑运算符,用于组合两个布尔表达式
在语句中使用多个逻辑运算符时,SQL Server将在 AND 运算符之后计算 OR 运算符。 但是,可以使用括号更改评估顺序。
使用OR运算符示例
以下查询查找价格大于 3000 或型号为 2018 的产品。满足其中一个条件的任何产品都包含在结果集中。
SELECT
product_id, product_name,
category_id, model_year,
list_price
FROM
production.products
WHERE
list_price > 3000 OR model_year = 2018
ORDER BY
list_price DESC;