选读SQL经典实例笔记01_检索和排序

 

1. 在WHERE子句中引用别名列

1.1. 当表里的某些列没有被恰当命名的时候,这个技巧尤其有用

1.2. sql

select sal as salary, comm as commissionfrom empwhere salary < 5000

1.3. 内嵌视图

1.3.1.  sql

select *from (select sal as salary, comm as commissionfrom emp) xwhere salary < 5000

1.3.2. 聚合函数

1.3.3. 标量子查询

1.3.4. 窗口函数

1.3.5. 别名

2. CONCAT函数

2.1. 串联多列的值

2.2. 在DB2、Oracle和PostgreSQL 中,“||”是CONCAT函数的快捷方式

2.3. 在SQL Server中则为“+”

3. 随机返回若干行记录

3.1. 如果ORDER BY子句使用数值常量,那么就需要按照SELECT列表里的顺序来排序

3.2. 如果ORDER BY子句使用了函数,那么就需要按照该函数的返回值来排序,而函数返回的值是根据结果集里的每一行计算而来的

3.3. MySQL

3.3.1.  sql

  select ename,jobfrom emporder by rand() limit 5

3.4. PostgreSQL

3.4.1.  sql

 select ename,jobfrom emporder by random() limit 5

3.5. Oracle

3.5.1.  sql

 select *from (select ename, jobfrom emporder by dbms_random.value())where rownum <= 5

3.6. SQL Server

3.6.1.  sql

select top 5 ename,jobfrom emporder by newid()

4. 把Null值转换为实际值

4.1. COALESCE函数

4.1.1.  sql

select coalesce(comm,0)from emp

4.1.2. 更方便、更简洁

4.2. CASE

4.2.1. sql

 select casewhen comm is not null then commelse 0endfrom emp

4.3. 适用于所有的数据库

5. 依据子串排序

5.1. 按照职位字段的最后两个字符对检索结果进行排序

5.2. DB2、MySQL、Oracle和PostgreSQL

5.2.1. sql

select ename,jobfrom emporder by substr(job,length(job)-2)

5.3. SQL Server

5.3.1. sql

select ename,jobfrom emporder by substring(job,len(job)-2,2)

6. 排序时对Null值的处理

6.1. Oracle能够让你在无须修改非Null值数据的情况下方便地把Null值排到最前面或者最后面,其他数据库得添加一个辅助列

6.1.1. Oracle 9i及后续版本NULLS FIRST和NULLS LAST来决定Null值应该排到前面还是后面

6.2. 辅助列

6.2.1. 只存在于查询语句里,而不存在于表中

6.2.2. 目的是让你能够识别出Null值,并控制其排在最前面还是最后面

6.3. 对于非Oracle解决方案的查询语句,其内嵌视图X会返回如下结果集

6.4. sql

select ename,sal,comm,case when comm is null then 0 else 1 end as is_nullfrom emp

7.  依据条件逻辑动态调整排序项

7.1. 如果JOB等于SALESMAN,就要按照COMM来排序;否则,按照SAL排序

7.2.  sql

select ename,sal,job,commfrom emporder by case when job = 'SALESMAN' then comm else sal end

7.3. sql

select ename,sal,job,comm,case when job = 'SALESMAN' then comm else sal end as orderedfrom emp
order by 5

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts折线图默认不显示数据圆点,鼠标hover时折线图上才显示圆点

option {......tooltip: {trigger: axis,},series: [{symbol: circle,symbolSize: 5,showSymbol: false, // 只有在 tooltip hover 的时候显示symbolitemStyle: { // symbol样式normal: {color: rgb(255, 255, 255),borderColor: rgba(255, 255, 255, 0.2), // symbol边框颜色…

Win10安装SQLite Expert Pers Setup64

在win10系统下安装SQLite Expert,我的电脑是64位系统,所以选择SQLite Expert Pers Setup64 一、软件下载 1、官网地址 SQLite administration | SQLite Expert 点击“DOWNLOAD”,选择红框中的免费版本 2、百度网盘下载 链接:h…

谷歌浏览器(chrome)安装crx插件

1、下载crx插件 2、插件扩展名改名为zip 3、解压zip文件 4、打开谷歌浏览器扩展程序 chrome://extensions/ 5、打开开发者模式,加载已解压的扩展程序,安装成功即如图展示

初始网络原理

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 端口号 认识协议 五元组 协议分层 OSI七层模型 TCP/IP五层(或四层) 网络设备所在分层 封装和分用 网络发展史 独立模式 独立模式:计算机之间相互…

Git Bash介绍

Git Bash介绍 Git是一个版本控制工具,而Git Bash是在Windows系统中运行Git命令的命令行界面工具。您可以使用Git Bash来管理和操作Git仓库。当你在Windows系统上安装Git时,它会默认安装Git Bash。 Git Bash是git(版本管理器)中提供的一个命令行工具&am…

分布式调用与高并发处理 Zookeeper分布式协调服务

一、Zookeeper概述 1.1 集中式和分布式 单机架构 一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器提供。 缺点: 服务性能存在瓶颈,用户增长的时候…

短视频矩阵抖音账号矩阵系统源码开发者自研(一)

一、短视频矩阵系统源码框架建模搭建 目录 一、短视频矩阵系统源码框架建模搭建 1.抖音账号矩阵系统功能模型建模 2.短视频账号矩阵系统接口开发规则 二、短视频矩阵系统源码视频剪辑转码处理 短视频矩阵系统是一个多功能的视频内容管理系统,用于创建、剪辑发布…

如何用Python搭建监控平台

监控和运维,是互联网工业链上非常重要的一环。监控的目的就是防患于未然。通过监控,我们能够及时了解到企业网络的运行状态。一旦出现安全隐患,你就可以及时预警,或者是以其他方式通知运维人员,让运维监控人员有时间处…

华为OD机试真题 Python 实现【开心消消乐】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、Python算法源码五、效果展示1、输入2、输出3、说明 一、题目描述 给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。矩阵示例如: 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 现需要将矩阵中所有的1进行…

Autosar诊断实战系列08-Dem与BswM在ECU运行期间究竟擦出了哪些火花

本文框架 前言1. Dem与BswM交互内容先睹为快2 Dem与BswM交互的配置开发2.1 ESH_DemInit Rule2.2 Dem_Shutdown的处理规则3. Dem在初始化及Shutdown期间的工作内容3.1 Dem初始化期间工作内容3.2 Dem_ShutDown期间工作内容前言 在本系列笔者将结合工作中对诊断实战部分的应用经验…

抖音seo账号矩阵系统源码代开发组件

一.开发矩阵系统的项目背景: 目录 一.开发矩阵系统的项目背景: 二.短视频矩阵系统SaaS模板组件通常包含以下几个方面的内容: 三.抖音SEO账号矩阵系统源码的技术搭建过程可以分为几个步骤: 1.确定系统的需求和目标&#xff0c…

matlab求解方程和多元函数方程组

核心函数solve 一般形式 Ssolve(eqns,vars,Name,Value) ,其中: eqns是需要求解的方程组; vars是需要求解的变量; Name-Value对用于指定求解的属性(一般用不到); S是结果,对应于v…