首页
学习
活动
专区
圈层
工具
发布

SQL中CASE表达式的妙用

case 表达式作为标准SQL的用法,真的是很强大。 case 表达式分为搜索表达式和简单表达式,由于搜索表达式包含了简单表达式的所有用法,此处仅介绍搜索表达式的用法。...取代小表关联 之前工作中遇到一个需求,需要将表中的某列进行转换,以得到新的列,当时采用的创建小表,然后再进行内连接的方法。...-- 2.使用 case 表达式的方法 SELECT `中端1月`.NODE_NAME, case when `中端1月`.NODE_NAME = '目标制定报告上传' then...第二种写法看似代码更加复杂,但是较写法一少了建表、插入数据的步骤。 行转列 假设有下表 ? 想转换成下面的样子,该如何写 sql 呢? ?...case when 表达式 + 聚合函数可以实现行转列 -- case when 实现数字列 score 行转列 select name, sum(case when subject = '语文

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle中的SQL优化

    但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:     ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录...实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。...DLYX.ZLYHJBQK(中间多了空格)     以上四个SQL在ORACLE分析整理之后产生的结果及执行的时间是一样的,但是从ORACLE共享内存SGA的原理,可以得出ORACLE对每个SQL 都会对其进行一次分析...b.查询表顺序的影响     在FROM后面的表中的列表顺序会对SQL执行性能影响,在没有索引及ORACLE没有对表进行统计分析的情况下ORACLE会按表出现的顺序进行链接,由此因为表的顺序不对会产生十分耗服务器资源的数据交叉...(注:如果对表进行了统计分析,ORACLE会自动先进小表的链接,再进行大表的链接) 三.SQL语句索引的利用     1.对操作符的优化(见上节)     2.对条件字段的一些优化:     a.采用函数处理的字段不能利用索引

    3.1K20

    巧用SQL:oracle plsql split函数

    李伟 专注于oracle pl/sql开发和Java开发,擅长复杂业务逻辑、算法的pl/sql实现。 背景 在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作。...执行,sql的返回结果用List接收,并在service层遍历List和拼接字符串,将拼接后的字符串封装在实体类(BO/VO)中,再按JSON格式返回给前台。...解决方案 本文要做的就是单句SQL实现该功能。 先分析一下,该业务有两个关键点。 一是字符串拼接,oracle(11.2)提供了listagg函数已经实现了该功能,我们直接使用就可以。...二是字符串拆分,oracle没有实现该功能,但是java提供了split函数实现了字符串拆分功能。 我们可以参考java的split函数写一个oracle版split函数。...与listagg函数联合查询: ? 注意:listagg是oracle 11.2版本的新功能。 至此,便简单实现了oracle的字符拆分与拼接。

    3.3K60

    Oracle中的基本SQL知识

    什么是SQL语言 a) SQL, Structured Query Language, 结构化查询语言 b) SQL 是最重要的关系数据库操作语言,是所有关系数据库 管理系统的标准语言....开始设置使用Oracle时的相关准备 设置字体 ? 关闭自动备份,避免生成同名文件 ? select基本语句 一般使用的是Oracle自带的scott用户,密码默认为tiger,不过要手动创建一下。...d) 在 Oracle 中, 双引号表示原样输出. select ename, job, sal*12 "ni a n xin" from emp; 5、 distinct 用于去除重复行信息 a)...select distinct ename, job from emp; 6、字符串连接符 Oracle 中, 用单引号表示字符串 a) 查询所有员工的姓名, 职位和薪资, 以姓名:xxx, 职位...'_A%'; c) 查询姓名中带有字母 C 的员工的信息 select * from emp where ename like '%C%'; d) 查询姓名中带有下划线的员工的信息 escape

    1.9K20

    Oracle 中 table 函数的应用

    表函数可接受查询语句或游标作为输入参数,并可输出多行数据。该函数可以平行执行,并可持续输出数据流,被称作管道式输出。应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表。...用游标传递数据 利用游标 REF CURSOR 可将数据集(多行记录)传递到PL/SQL函数: SELECT *   FROM TABLE (myfunction (CURSOR (SELECT *                                    ...定义对象类型和基于对象类型的表类型 定义对象类型并且为进一步引用做好准备。...定义表类型:TYPE SUM_SALES_ROLL_T_TAB CREATE TYPE sum_sales_roll_t_tab AS TABLE OF sales_roll_t; (7)检查一下建立的类型...调用表函数 下列 SQL 查询语句调用已被定义的表函数。

    3.4K80

    SQL 中的聚集函数?

    SQL 中的聚集函数? SQL 函数包含了算术函数,字符串函数,日期函数,转换函数。还有一函数,叫做聚集函数。SQL 聚集函数是对一组数据进行汇总的函数,输入是一组数据的集合,输出是单个值。...有哪些聚集函数 SQL 中的聚集函数,有最大值,最小值,平均值。 ? image Count 使用 例子:查询heros 中hp_max 大于6000 的英雄。...想要查询最⼤⽣命值⼤于6000,且有次要定位的英雄数量,需要使⽤COUNT函数。...需要说明的是,COUNT(role_assist)会忽略值为NULL的数据⾏,⽽COUNT(*)只是统计数据⾏数,不管某个字段是否为NULL。...对数据行中不同的取值进行聚集,过滤掉重复,可以写成如下: SELECT COUNT(DISTINCT hp_max) FROM heros 运⾏结果为61。

    2K10

    SQL知识大全(六):SQL中的开窗函数

    在数据分析中,窗口函数是我们经常用到的函数,今天的文章我们总结了常用的各类窗口函数并给出实例。 ? 一 创建数据集 ?...聚合函数也可用于窗口函数当中,用法和专用窗口函数相同。 聚合函数sum、avg、count、max、min都是针对自身记录以及自身记录以上的所有数据进行计算的。...聚合函数的开窗和专用的窗口函数是一致的,其形式为: ‹窗口函数› over (partition by ‹用于分组的列名› order by ‹用于排序的列名›) 聚合函数的窗口函数中,加不加order...,上面的句子中,是之前2行。...lag和lead函数可以在同一次查询中取出同一字段的前N行数据(lag)和后N行数据(lead)。

    5.5K20

    oracle基础|oracle函数的使用|oracle单行函数(字符函数、日期函数、数字函数、转换函数)的使用

    目录 一、 前言 二、什么是函数 1、哑表dual 2、字符函数 3、数字函数 4、日期函数 5、类型转换函数 6、千年虫: ---- 一、 前言 前面我们学了一些简单的用法,今天要学习oracl函数的使用...,函数是oracle非常重要的功能,如果将函数学会了,那么基本上在项目的一些增删改查功能,就可以很轻松的上手了,所以这篇文章一定要认真的看 二、什么是函数 这里的函数相当于java中写好的一些方法,有名字...通常用在select语句中,作为查询的目标表结构,oracle保证dual里面永远只有一条记录。...rr,并且只提供了最后2位年份,那么年份中的前两位数字就由两部分共同确定:提供年份的两位数字(指定年),数据库服务器上当前日期中年份的后2位数字(当年)。...数据库中表示一个日期数据的几种方式 1.sysdate 2.oracle默认的日期格式 例如:'25-MAY-95' 3.to_date函数转换

    9.2K10
    领券