SQL查询语句2

本文介绍了SQL查询中的DISTINCT子句,用于去除查询结果中的重复值。同时,详细讲解了WHERE子句的用法,包括单一条件、多个条件的组合,以及比较运算符(>,=,<)、AND、OR、BETWEEN、IN和LIKE等逻辑运算符的使用。示例涵盖了不同的查询场景,帮助理解如何筛选和查找满足特定条件的数据。" 131333975,5694077,FPGA与CPLD的区别和应用场景,"['FPGA开发', '数字电路', '电路设计', '逻辑器件']

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

  1. Select Distinct子句
    SELECT DISTINCT 子句检索指定列列表中的唯一不同值,换句话说,它从结果集中删除列中的重复值。
    DISTINCT 子句将所有 NULL 值视为相同的值
    语法如下所示:
    A. DISTINCT一个字段的示例
    以下语句返回 customers 表中所有客户所在的所有城市:
    B. DISTINCT多列示例
    以下语句查找所有客户的不同城市和州。
    C. DISTINCT带有null值示例
    以下示例查找客户的不同(唯一)电话号码:
  2. SQL Server WHERE子句
    要从表中获取满足一行或多个条件的行,请使用 WHERE 子句,如下所示:
    SELECT DISTINCT
    column_name1,
    column_name2 ,

    FROM
    table_name;

SELECT
city
FROM
sales.customers
ORDER BY
city;

SELECT DISTINCT
city,
state
FROM
sales.customers

SELECT DISTINCT
phone
FROM
sales.customers
ORDER BY
phone;

在 WHERE 子句中,指定搜索条件以过滤 FROM 子句返回的行。 WHERE 子句仅返回导致搜索条件计算为
TRUE 的行。搜索条件是逻辑表达式
或多个逻辑表达式的组合
通过使用简单的相等来查找行
以下语句检索类别为 id 为 1 的所有产品:
3. AND 查找满足两个条件的行
AND 是一个逻辑运算符,用于组合两个布尔表达式
以下示例返回满足两个条件的产品: category_id 为 1 , model_year 为 2018 。
它使用逻辑运算符 AND 来组合这两个条件。
SELECT
select_list
FROM
table_name
WHERE
search_condition;

SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
category_id = 1
ORDER BY
list_price DESC;

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;

  1. (>,=,<)使用比较运算符查找行
    以下语句查找价格大于 300 且型号为 2018 的产品。
  2. OR 查找满足两个条件中的任何一个的行
    OR 是一个逻辑运算符,用于组合两个布尔表达式
    在语句中使用多个逻辑运算符时,SQL Server将在 AND 运算符之后计算 OR 运算符。 但是,可以使用括
    号更改评估顺序。
    A. 使用OR运算符示例
    以下查询查找价格大于 3000 或型号为 2018 的产品。满足其中一个条件的任何产品都包含在结果集中。
    B. 使用OR和AND运算符示例
    请考虑以下示例:
    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;

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;

在这个例子中,使用了 OR 和 AND 运算符。 与往常一样,SQL Server首先评估 AND 运算符。 因此,查询
返回品牌编号( brand_id )为 4 且
价格大于 100 的产品或品牌编号( brand_id )为 3 的产品。
要查找品牌编号( brand_id )为 3 或 4 且价格大于 100 的产品,请使用括号,如以下查询所示:
6. Between查找具有两个值之间的值的行
BETWEEN 运算符是一个逻辑运算符,用于指定要测试值的范围。
以下是 BETWEEN 运算符的语法:
可以使用大于或等于( >= )且小于或等于( <= )来替换 BETWEEN 运算符,如下所示
使用 BETWEEN 运算符的条件比使用比较运算符 >= , <= 和逻辑运算符AND的条件更具可读性。
要取消 BETWEEN 运算符的结果,请使用 NOT BETWEEN 运算符,如下所示:
A. SQL Server BETWEEN两个数字示例
SELECT
product_name,
brand_id,
list_price
FROM
production.products
WHERE
brand_id = 3
OR brand_id = 4
AND list_price > 100
ORDER BY
brand_id DESC;

SELECT
product_name,
brand_id,
list_price
FROM
production.products
WHERE
(brand_id = 3 OR brand_id = 4)
AND list_price > 100
ORDER BY
brand_id;

1 column | expression BETWEEN start_expression AND end_expression
column | expression <= end_expression AND column | expression >=
start_expression
1
1 column | expression NOT BETWEEN start_expression AND end_expresion
以下语句查找价格介于 1899 和 1999.99 之间的产品:
B. SQL Server BETWEEN两个日期示例
以下查询查找客户在2017年1月15日至2017年1月17日期间下的订单:
7. IN 查找值列表中具有值的行
IN 运算符是一个逻辑运算符
IN 运算符等效于多个 OR 运算符,因此,以下语法是等效的:
要取消 IN 运算符,请使用 NOT IN 运算符,如下所示:
以下示例使用 IN 运算符查找价格为 299.99 或 466.99 或 489.99 的产品。
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price BETWEEN 1899.00 AND 1999.99
ORDER BY
list_price DESC;

SELECT
order_id,
customer_id,
order_date,
order_status
FROM
sales.orders
WHERE
order_date BETWEEN ‘20170115’ AND ‘20170117’
ORDER BY
order_date;

column IN (v1, v2, v3)
column = v1 OR column = v2 OR column = v3

1 column | expression NOT IN ( v1, v2, v3, …)
8. Like 查找其值包含字符串的行
SQL Server LIKE 运算符的语法:
pattern
模式是要在列或表达式中搜索的字符序列。它可以包含以下有效通配符:
通配符百分比( % ):任何零个或多个字符的字符串。
下划线( _ )通配符:任何单个字符。
[list of characters] 通配符:指定集合中的任何单个字符。
[character-character] :指定范围内的任何单个字符。
[^] :不在列表或范围内的任何单个字符。
通配符使 LIKE 运算符比等于( = )和不等于( != )字符串比较运算符更灵活。
转义符
转义字符指示 LIKE 运算符将通配符视为常规字符。转义字符没有默认值,必须仅计算为一个字
符。
A. %(百分比)通配符
查找姓氏( last_name )以字母 z 开头的客户:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price IN (299.99, 369.99, 489.99)
ORDER BY
list_price DESC;
SQL


where
column | expression [NOT] LIKE pattern [ESCAPE escape_character]

SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
last_name LIKE ‘z%’
ORDER BY
first_name;

返回姓氏( last_name )以字符串 er 结尾的客户信息:
以下示例使用 LIKE 运算符查找名称中包含字符串 Cruiser 的产品:
B. _(下划线)通配符
下划线代表单个字符。 例如,以下语句返回第二个字符为字母 u 的客户:
C. [list of characters]通配符
带有字符列表的方括号,例如: [ABC] 表示单个字符,必须是列表中指定的字符之一。
例如,以下查询返回姓氏( last_name )中第一个字符为 Y 或 Z 的客户:
SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
last_name LIKE ‘%er’
ORDER BY
first_name;

SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
product_name LIKE ‘%Cruiser%’
ORDER BY
list_price;
SQL

SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
last_name LIKE ‘_u%’
ORDER BY
first_name;
D. [character-character]通配符
具有字符范围的方括号,例如 [A-C] 表示必须在指定范围内的单个字符。
例如,以下查询查找客户,其中姓氏中的第一个字符是范围 A 到 C 中的字母:
E. [[^]]通配符
带有插入符号( ^ )后跟范围,例如 [A-C] 或字符列表,例如 [^ABC] 的方括号表示不在指定范围或字符列
表中的单个字符。
例如,以下查询返回姓氏中的第一个字符不是范围 A 到 X 中的字母的客户信息:
F. NOT LIKE运算符
以下示例使用 NOT LIKE 运算符查找名字中第一个字符不是字母 A 的客户:
SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
last_name LIKE ‘[YZ]%’
ORDER BY
last_name;

SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
last_name LIKE ‘[A-C]%’
ORDER BY
first_name;

SELECT
customer_id,
first_name,
last_name
FROM
sales.customers
WHERE
last_name LIKE ‘[^A-X]%’
ORDER BY
last_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值