SQL篇-03_SQL必知必会-13_组合查询

news2025/1/31 7:44:24

SQL106 将两个 SELECT 语句结合起来(一)

描述
表OrderItems包含订单产品信息,字段prod_id代表产品id、quantity代表产品数量
prod_id	quantity
a0001	105
a0002	100
a0002	200
a0013	1121
a0003	10
a0003	19
a0003	5
BNBG	10002
【问题】
    将两个 SELECT 语句结合起来,以便从 OrderItems表中检索产品 id(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 id 以 BNBG 开头的产品,最后按产品 id 对结果进行升序排序。
【示例结果】
    返回产品id prod_id和产品数量quantity
prod_id	quantity
a0002	100
BNBG	10002
【示例解析】
    产品id a0002因为数量等于100被选取返回;BNBG因为是以 BNBG 开头的产品所以返回;最后以产品id进行排序返回。
示例1
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
	prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
	quantity VARCHAR(255) NOT NULL COMMENT '商品数量'
);
INSERT `OrderItems` VALUES ('a0001',105),('a0002',100),('a0002',200),('a0013',1121),('a0003',10),('a0003',19),('a0003',5),('BNBG',10002);
复制
输出:
a0002|100.000
BNBG|10002.000

答案:

SELECT
    a.prod_id,
    a.quantity
FROM
    (
        SELECT
            prod_id,
            quantity
        FROM
            OrderItems
        WHERE
            quantity = 100
        UNION ALL
        SELECT
            prod_id,
            quantity
        FROM
            OrderItems
        WHERE
            prod_id LIKE 'BNBG%'
    ) a
ORDER BY
    a.prod_id

SQL107 将两个 SELECT 语句结合起来(二)

描述
表OrderItems包含订单产品信息,字段prod_id代表产品id、quantity代表产品数量。
prod_id	quantity
a0001	105
a0002	100
a0002	200
a0013	1121
a0003	10
a0003	19
a0003	5
BNBG	10002
【问题】
  将两个 SELECT 语句结合起来,以便从 OrderItems表中检索产品 id(prod_id)和 quantity。其中,一个 SELECT 语句过滤数量为 100 的行,另一个 SELECT 语句过滤 id 以 BNBG 开头的产品,最后按产品 id 对结果进行升序排序。
 注意:这次仅使用单个 SELECT 语句。
【示例结果】
    返回产品id prod_id和产品数量quantity
prod_id	quantity
a0002	100
BNBG	10002
【示例解析】
    产品id a0002因为数量等于100被选取返回;BNBG因为是以 BNBG 开头的产品所以返回;最后以产品id进行排序返回。
示例1
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
	prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
	quantity VARCHAR(255) NOT NULL COMMENT '商品数量'
);
INSERT `OrderItems` VALUES ('a0001',105),('a0002',100),('a0002',200),('a0013',1121),('a0003',10),('a0003',19),('a0003',5),('BNBG',10002);
复制
输出:
a0002|100.000
BNBG|10002.000

答案:

SELECT prod_id, quantity
      FROM OrderItems
      WHERE quantity = 100 OR prod_id LIKE 'BNBG%'
ORDER BY prod_id

SQL108 组合 Products 表中的产品名称和 Customers 表中的顾客名称

描述
Products表含有字段prod_name代表产品名称
prod_name
flower
rice
ring
umbrella
Customers表代表顾客信息,cust_name代表顾客名称
cust_name
andy
ben
tony
tom
an
lee
hex
【问题】
编写 SQL 语句,组合 Products 表中的产品名称(prod_name)和 Customers 表中的顾客名称(cust_name)并返回,然后按产品名称对结果进行升序排序。
【示例结果】
prod_name
an
andy
ben
flower
hex
lee
rice
ring
tom
tony
umbrella
【示例解析】
拼接cust_name和prod_name并根据结果升序排序
示例1
输入:
DROP TABLE IF EXISTS `Products`;
CREATE TABLE IF NOT EXISTS `Products` (
`prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称'
);
INSERT INTO `Products` VALUES ('flower'),
('rice'),
('ring'),
('umbrella');

DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(
	cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
);
INSERT `Customers` VALUES ('andy'),('ben'),('tony'),('tom'),('an'),('lee'),('hex');
复制
输出:
an
andy
ben
flower
hex
lee
rice
ring
tom
tony
umbrella

答案:

SELECT a.prod_name
FROM (
SELECT prod_name
FROM Products
UNION ALL
SELECT cust_name AS "prod_name"
FROM Customers) a
ORDER BY a.prod_name

SQL109 纠错4

描述
表Customers含有字段cust_name顾客名、cust_contact顾客联系方式、cust_state顾客州、cust_email顾客email

在这里插入图片描述

【问题】修正下面错误的SQL
SELECT cust_name, cust_contact, cust_email 
FROM Customers 
WHERE cust_state = 'MI' 
ORDER BY cust_name; 
UNION 
SELECT cust_name, cust_contact, cust_email 
FROM Customers 
WHERE cust_state = 'IL'ORDER BY cust_name;
【示例结果】
返回顾客名称cust_name、顾客联系方式cust_contact、顾客email cust_email

在这里插入图片描述

【示例解析】
返回住在IL和MI的顾客信息,最后根据顾客名称排序
示例1
输入:
DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(
    cust_name VARCHAR(255) NOT NULL COMMENT '顾客id',
    cust_contact VARCHAR(255) NOT NULL COMMENT '顾客联系方式',
    cust_state VARCHAR(255) NOT NULL COMMENT '顾客州',
    cust_email VARCHAR(255) NOT NULL COMMENT '顾客email'
  );
INSERT `Customers` VALUES ('cust10','8695192','MI','cust10@cust.com'),('cust1','8695193','MI','cust1@cust.com'),('cust2','8695194','IL','cust2@cust.com');
复制
输出:
cust1|8695193.000|cust1@cust.com
cust10|8695192.000|cust10@cust.com
cust2|8695194.000|cust2@cust.com

答案:

SELECT a.cust_name,
             a.cust_contact,
             a.cust_email
FROM (SELECT cust_name,
             cust_contact,
             cust_email
      FROM Customers
      WHERE cust_state = 'MI'
      UNION ALL
      SELECT cust_name,
             cust_contact,
             cust_email
      FROM Customers
      WHERE cust_state = 'IL') a
ORDER BY a.cust_name

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移动卫生间有人无人自动采集方案

互联网和物联网技术的不断普及,以及新技术的不断更新迭代,为我们的生活带来了诸多便利和改变。在这个信息时代,我们希望通过采用更先进的技术来建设智慧厕所,以满足人们对卫生设施的高品质需求。其中,物联网技术、传感…

python和pip安装+flask基本用法小白教程

安装python 3.8.2: 直接点击下方链接下载: 链接:https://pan.baidu.com/s/11Jo1I8GjnKQSgIv-5xSrTw 提取码:hg5h 安装pip: 在下载安装完python配置完环境变量后,打开cmd输入下面命令: pyt…

一文了解什么是ISO 9001认证,以及在静态分析和代码质量领域有哪些通过此认证的工具

ISO 9001是一个国际标准,被广泛应用于不同规模、不同类型的企业,它为企业的质量管理体系(QMS)提供了具体的要求和标准。 最新版本的ISO 9001发布于2015年,旨在帮助企业改善客户体验、满足法规要求、管理供应商和合作伙…

基于STM32设计的老人监护系统

一、设计需求 1.1 项目背景 21世纪以来,随着科技的发展,在人们的生活水平不断的提升的同时中国老龄化人口问题日益严重,再加上社会经济的发展。许多子女外出打工,使得越来越多的空巢老人得不到及时有效的关心与治疗。因此,本系统以老人为中心,并设定出许多相关的功能监…

Java 并发编程

一、开篇 本篇只要是对Java基础中的并发编程进行巩固、知识回顾。 几乎所有的资料在讲述本篇时都是先讲一下进程和线程的区别。在此将不详细介绍,只介绍了解以下几点区别: 1、进程大、线程小,一个程序至少有一个进程,一个进程至…

原型模式-克隆一个对象

在开发一个界面的时候,里面有多个Button,这些对象的属性内容相似。如果一个个实例化Button对象,并设置其属性,那么代码量将会增多。 通过一个原型对象克隆出多个一模一样的对象,该模式被称为原型模式。 图 原型模式 …

Vue-Router相关理解3

路由跳转的replace方法 编程式路由导航&#xff08;不用<router-link></router-link>&#xff09; src/components/Banner.vue <template><div class"col-xs-offset-2 col-xs-8"><div class"page-header"><h2>Vue R…

Nginx配置白名单访问

一、背景 在项目运行的时候&#xff0c;需要设置特定的访问权限&#xff0c;以拒绝其他可能存在的恶意访问。 二、配置 2.1、关键字 允许访问关键字&#xff1a;allow 屏蔽访问关键字&#xff1a;deny 2.2、作用域 作用域如下&#xff1a; http&#xff1a;所有网站屏蔽I…

MATLAB算法-数据挖掘算法详解,

Matlab是一种功能强大的数据分析和数据挖掘工具,提供了丰富的数据挖掘算法和函数。下面将介绍一些最著名的数据挖掘算法,并提供相应的代码示例。 K均值聚类算法(K-means Clustering): K均值聚类是一种常用的无监督学习算法,用于将数据集划分为K个不同的簇。以下是在Matla…

ElasticSearch学习(1) 基础操作

目前使用的ES版本是7&#xff0c;借用下其他的文档。说明下ES的存储。 ES首先是index 对应的是数据库&#xff0c;7以前有type的概念&#xff0c;7没有type的概念&#xff0c;也就是说现在ES7 一个库(index)只有一个表(type)。 一个表(type)可以有多行(doc) 一行(doc)有多列…

上手vue2的学习笔记4之搭建vue环境

一、安装node环境 上手vue2的学习笔记2之安装nodejs和npm的踩坑经历 node -v //查看是否安装成功 npm -v //查看npm是否安装成功二、搭建vue项目环境 参考链接1&#xff1a;vue(2.0版本)安装步骤教程 参考链接2: MacOS 搭建一个vue项目(完整步骤) 1、安装vue2 npm install …

驱动程序设计 平台驱动、Linux内存映射、Linux中断、按键中断控制 7.13

平台驱动 模块驱动&#xff1a; 一对多管理&#xff0c;系统管理效率低 加载卸载方便 设备模型&#xff1a;分层分级的管理4个重要的组成部分&#xff1a;class device driver bus&#xff08;总线&#xff09;层级&#xff1a;kobj-->kset/kobj-->kset-->kset class…

资产管理简单实用技巧,让你告别加班!

资产管理系统在现代商业环境中扮演着关键的角色。随着企业资产规模的不断扩大和多样化&#xff0c;有效地管理和跟踪资产变得至关重要。 随着企业竞争的加剧和资产管理的重要性日益凸显&#xff0c;资产管理系统将继续在各行各业中发挥着不可或缺的作用。无论是生产设备、办公设…

BottomSheetDialog无法设置圆角的解决问题

1、设置background为透明 <style name"BottomSheetDialog" parent"Theme.Design.Light.BottomSheetDialog"><item name"bottomSheetStyle">style/bottomSheetStyleWrapper</item></style><style name"bottomShe…

Redis的缓存问题

说起Redis的缓存&#xff0c;我们知道前端发出的请求到后端&#xff0c;后端先从Redis中查询&#xff0c;如果查询到了则直接返回&#xff0c;如果Redis中未查询到&#xff0c;就去数据库中查询&#xff0c;如果数据库中存在&#xff0c;则返回结果并且更新到Redis缓存当中&…

西贝柳斯Sibelius2023旗舰版曲谱大师必备音乐软件

乐谱太复杂&#xff0c;打起来太费时间&#xff1f;革命性的省时功能&#xff0c;如磁性布局和动态分谱&#xff0c;能够快速创作复杂的乐谱。音色库太简陋&#xff0c;找起来麻烦&#xff1f;收藏丰富的音色库供您直接使用&#xff0c;涵盖最广泛的专业级乐器&#xff0c;支持…

RK3399/RK3588+pcie+Zynq 多核架构可穿戴设备设计方案

在很多领域&#xff0c;人们对可穿戴设备的可靠性有着非常高的要求。这些使用场景 不仅丰富多样&#xff0c;而且复杂多变。这使得可穿戴设备不仅需要应对应用和系统本身 的状态变化&#xff0c;也要考虑到设备所处环境所带来的异常情况。所以&#xff0c;针对不同安全 等级…

Windows搭建SVN环境

VisualSVN Server下载 https://www.visualsvn.com/products VisualSVN Server安装创建仓库创建项目创建用户创建组项目分配组VisualSVN下载 https://www.visualsvn.com/products VisualSVN安装项目检出项目检出路径&#xff1a;https://changwq:8443/svn/dev/InterfaceManage 项…

【C++初阶】类和对象(上)

文章目录 前言一、类的引入二、类的定义三、类的访问限定符及封装四、类的作用域五、类的实例化六、类对象模型七、this指针 前言 &#x1f4d6;面向过程 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。以…

linux之Ubuntu系列(-)常见指令

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入&#xff1a;export LANGen_US 在终端录入&#xff1a;xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…