1.使用条件查询  查询部门为20的员工列表 -- 查询部门为20的员工列表    SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20' ; 效果: 2.使用  listagg() WITHIN GROUP ()  将多行合并成一行 SELECT        T .DEPTNO,        listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME) names   …
1.使用条件查询 查询部门为20的员工列表    -- 查询部门为20的员工列表    SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20' ;    效果:2.使用  listagg() WITHIN GROUP ()  将多行合并成一行(比较常用)    SELECT        T .DEPTNO,        listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .EN…
今天需要将 BDST_ID相同的PROJECT_ID用逗号分隔拼成一个字符串,于是想到了oracle的listagg函数 表名为PM_BDST_PROJECT select tt.BDST_ID, listagg (tt.PROJECT_ID, ',') WITHIN GROUP (ORDER BY tt.PROJECT_ID) PROJECT_IDS FROM PM_BDST_PROJECT tt GROUP BY tt.BDST_ID 这样就大功告成了......…
oracle分析函数——listagg篇 (1)使用listagg将多行数据合并到一行 例表: select deptno, ename from emp order by deptno, ename 假设有一个需求,需要将emp表中相同部门的雇员姓名存放到一行中,不同的姓名用逗号“,”分隔,结果如下图: 我们可以用oracle11g里面的分析函数listagg来实现,SQL语句如下: select deptno, listagg(ename,',') within group (order b…
listagg( ) within group ( order by ) 与 wm_concat --oracle 11g 及以后适合 最好 select spbywslid,listagg(xm,',') within group (order by spbywslid) col_name from tpg_jtcyqk group by spbywslid; --oracle 10g 及以前版本用 select spbywslid,wm_concat(xm)xm from tpg_jtcyq…
oracle 多行合并成一行: listagg within group 可以和递归方法一起使用查询路径: 例如: SELECT LISTAGG(t.FOLDER_NAME, '/') WITHIN GROUP(ORDER BY LEVEL DESC) AS FOLDER_NAME FROM BAS_FOLDER_TREE t START WITH ID = '1470' CONNECT BY PRIOR PID = ID; 查询结果:知识维度/人力资源测试账号看不到的维度/娱乐维度 可以解决查…
用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN ) || '/' ELSE TEXT END FROM USER_SOURCE A LEFT JOIN (SELECT A.NAME,A.TYPE,…
oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in (select deptno from emp where ename='SCOTT'); --查找不在销售部和财务部工作的雇员编号.姓名和部门编号. select empno,ename,deptno from emp where deptno not in (select deptno from dept…
软件实施面试系列文章第二弹,MySQL和Oracle联合查询以及聚合函数的面试总结.放眼望去全是MySQL,就不能来点Oracle吗?之前面过不少公司,也做过不少笔试题,现在已经很少做笔试题了.你肚子有多少墨水,有经验的面试官一问基本上就知道个大概了.趁着还有点微薄的记忆,就彻底分享出来啦. 系列文章已收录至github仓库: https://github.com/cnwangk/SQL-study 前言 那个用心作题图,用脚写文档的就是我龙腾万里sky啦. 如果不想自己去新建示例,也想找一个完…
nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with) 功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值. 注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数. 例子: nvl(to_char(some_numeric),’some string’) --其中some_numeric指某个数据类型的值. 例如: nvl(y…