ORACLE--SQL日常问题和技巧1(列变行、自定义查询结构、将字符串分割为多条记录)
1.ORACLE列变行加合计:

查询结果为

1 SELECT
2 nvl( F, '合计' ) F,
3 sum( S1 ) S1,
4 sum( S2 ) S2,
5 sum( S3 ) S3
6 FROM
7 (SELECT
8 F,
9 sum( decode( S, 'S1', N, NULL ) ) S1,
10 sum( decode( S, 'S2', N, NULL ) ) S2,
11 sum( decode( S, 'S3', N, NULL ) ) S3
12 FROM
13 LQG_TEST
14 GROUP BY
15 F)
16 GROUP BY
17 rollup (
18 F)
2.自定义查询结构,场景如下:
查询语文,数学,英语,科学四门学科的分数,但是表里只有数学和英语。如图:

查询结果为:

看看SQL吧(nvl函数用于oracle):
1 SELECT
2 TMP1.COURSE AS COURSE,
3 NVL ( TMP2.SCORE, 0 ) AS SCORE
4 FROM
5 (
6 SELECT
7 '语文' COURSE
8 FROM
9 DUAL UNION ALL
10 SELECT
11 '数学' COURSE
12 FROM
13 DUAL UNION ALL
14 SELECT
15 '英语' COURSE
16 FROM
17 DUAL UNION ALL
18 SELECT
19 '科学' COURSE
20 FROM
21 DUAL
22 ) TMP1
23 LEFT JOIN (
24 SELECT
25 CASE
26
27 WHEN
28 COURSE = 'CHINESE' THEN
29 '语文'
30 WHEN COURSE = 'MATH' THEN
31 '数学'
32 WHEN COURSE = 'ENGLISH' THEN
33 '英语'
34 WHEN COURSE = 'SCIENCE' THEN
35 '科学'
36 END AS COURSE,
37 SCORE
38 FROM
39 LGQ_TEST
40 ) TMP2 ON TMP1.COURSE = TMP2.COURSE
3.将字符串按某字符分割为多条记录
1 SELECT
2 REGEXP_SUBSTR( '赵-钱-孙-李', '[^-]+', 1, ROWNUM )
3 FROM
4 dual CONNECT BY ROWNUM <= LENGTH( '赵-钱-孙-李' ) - LENGTH(
5 regexp_replace( '赵-钱-孙-李', '-', '' )) + 1

ORACLE--SQL日常问题和技巧1(列变行、自定义查询结构、将字符串分割为多条记录)的更多相关文章
- 160804、oracle查询:取出每组中的第一条记录
oracle查询:取出每组中的第一条记录按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by ...
- [转]Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行
原文地址:http://blog.csdn.net/seandba/article/details/72730657 函数PIVOT.UNPIVOT转置函数实现行转列.列转行,效果如下图所示: 1.P ...
- Oracle:分割字符串 取TOP N条记录
oracle数据库,表数据如下: ids id 3,4,5 7 13,14,15,16 ...
- oracle sql小结(主要讲横列转换的例子)decode 以及case
--建表 create table kecheng( id NUMBER, name VARCHAR2(20), course VARCHAR2(20), score NUMBER); --插入数据i ...
- Oracle SQL七次提速技巧
以下SQL执行时间按序号递减. 1,动态SQL,没有绑定变量,每次执行都做硬解析操作,占用较大的共享池空间,若共享池空间不足,会导致其他SQL语句的解析信息被挤出共享池. create or repl ...
- oracle sql小结(主要讲横列转换的例子)group by以及wmsys.wm_concat()的使用
---计算九月每个电厂的数量select f_dcname,count(f_dcname) as 九月份的数量 from W_EC_PLACESTATION_COLLECT twhere f_coll ...
- Oracle随笔之用拆分后的列数据关联表查询
-----------------------建表------------------------- create table test(id int, plist varchar2(30)) ; c ...
- 【ORACLE】SQL查询出每个组中的第一条记录
CREATE TABLE [TestTable] ( ) NOT NULL , ) NOT NULL , ) ))) GO ALTER TABLE [TestTable] ADD PRIMARY KE ...
- oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)
语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...
- sql语句查询出表里符合条件的第二条记录的方法
创建用到的表的SQL CREATE TABLE [dbo].[emp_pay]( [employeeID] [int] NOT NULL, [base_pay] [money] NOT NULL, [ ...
随机推荐
- gitlab tortoisegit puttyGen
使用puttyGen生成公私秘钥注意: 生成后的public key有时会在gitlab识别不出,要多重新生成才行 将puttyGen框中的内容复制进gitlab就行 生成时无需设置密码 选择rsa就 ...
- 判断属性值,选择性执行下一步(get element attribute指令的用法)
应用场景: 下图线下支付,在退款前需要勾选这种支付方式,否则无法实现支付. 如果在测试脚本内即加入勾选指令,那么在下次执行的时候就会再次勾选,从而造成去除勾选的操作 对比一下勾选前后,勾选框元素内容组 ...
- Web前端入门第 37 问:多图细说 CSS grid 网格布局(二)子元素相关属性
学习本文之前,建议先学习上一篇了解父元素的相关属性. 前文对 grid 网格布局中父元素容器相关的 CSS 属性做了详细介绍,本篇将继续学习子元素相关的 CSS 属性. 网格布局的一大波样式属性,父元 ...
- 在我用了几个月VSCode的C++及其衍生功能后的感受
VSCode优点槽点大盘点 优点 衍生功能是真的多,几乎所有功能在扩展市场里面都能得到.而且无需配置环境啊 自定义功能是真的方便,可以自定义.exe存放位置或者名称,打下;键就能够一键美化代码等等 美 ...
- Email邮箱验证码发送
以下文件保存到/static/email.txt <!DOCTYPE html> <html lang="en" xmlns:th="http://ww ...
- hadoop部署安装(六)hive
5.配置hive 5.1 hive下载地址 http://mirror.bit.edu.cn/apache/hive/ 解压缩 [root@master ~]# tar xf apache-hive- ...
- 基于ThinkPHP5知识付费系统AntPayCMS
历时6个月开发基于ThinkPHP5.1知识付费系统AntPayCMS,自己作IT开发已经10年,一直想自己开发自己的系统,虽然看网上也有很多知识付费类的网站的,但基于TP基本很少,而且自己也一直想做 ...
- Python 常用魔法方法(下)
Python 常用魔法方法(下) 回顾 魔法方法是 Python 内置方法, 不需要我们手动调用, 它存在的目的是给 解释器 调用的. 比如我们在写 "1 + 1 " 的时候, 这 ...
- 一行Code - 搭建HTTP服务器, 文件 多设备共享
我的痛点是这样的. 我想实现 文件 (代码文件, PPT PDF, WORD, 视频...) 等各种文件, 在 windows 电脑, android 手机, iPad, 及 mac 电脑或者, 或更 ...
- Ubuntu安装部署Zabbix网络监控平台和设备配置添加
概述 Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持. Zabbix 是一个企业级的开源分布式监控解决方案. Zabbix 是一款监控众多参数的 ...