oracle 多表查询

oracle 多表查询  1对多    多个数据放到一个字段内

select  id,zhzxm,fzhzxm,ltrim(max(sys_connect_by_path(xm, ‘,‘)), ‘,‘) xm

from (

select id,zhzxm,fzhzxm,xm,row_number() over(partition by id order by lrsj) rn  --标记相同的字段

from

(select t2.id id,t2.zhzxm zhzxm,t2.fzhzxm fzhzxm ,t1.xm xm,t1.lrsj lrsj from t_yj_yjzhy t1 left join t_yj_yjzhzxx t2 on t1.yjzhzid = t2.id)

)

start with rn=1

connect by prior rn=rn-1 and prior id=id

group by id,zhzxm,fzhzxm

时间: 2024-10-12 02:25:22

oracle 多表查询的相关文章

oracle系统表查询

oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本用户的表,视图等select * from all_col_comments --查询所有用户的表的列名和注释.select * from user_col_comments -- 查询本用户的表的列名和注释select * from all_tab_columns --查询所有用户的表的列名等信息

Oracle锁表查询和解锁方法

数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住 DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL

oracle 字典表查询

1.oracle 字典表查询 /*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/ select username,user_id,created from all_users; /*查看当前用户的用户详情*/ select username,user_id,account_status,lock_date,expiry_date,default_tablespace,temporary_tablespace,created,init

Oracle 多表查询(1)

一.基本概念 多表查询的语法如下: SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名] ,-]FROM 表名称 [别名], [表名称 [别名] ,-][WHERE 条件(S)][ORDER BY 排序字段 [ASC|DESC] [,排序字段 [ASC|DESC] ,-]]; 但是如果要进行多表查询之前,首先必须先查询出几个数据 -- 雇员表和部门表中的数据量,这个操作可以通过COUNT()函数完成. 范例:查询emp表中的数据量 --返回了14条记录 SELECT C

Oracle多表查询与数据更新

2.1 多表查询 2.1.1 多表查询的基本语法(重点) 多表查询语法如下: SELECT {DISTINCT} *|查询列1 别名1,查询列2 别名2 FROM 表名称1 别名1,表名称2 别名2 {WHERE 条件(s)} {ORDER BY 排序字段 ASC|DESC,排序字段 ASC|DESC} 例:同时查询emp和dept表 SQL> select * from emp,dept; 发现返回了56条数据,emp一个才14条,dept表才4条.56=14*4. 查询emp表的记录数: S

Oracle 锁表查询及解锁

如果对 Oracle 数据表中的数据进行 增删改 操作时卡住无响应,很可能是表已被锁定.使用下面的命令可以解决锁定问题. 锁表状态查询. 直接复制粘贴就可以. --锁表查询SQL SELECT object_name, machine, s.sid, s.serial#  FROM gv$locked_object l, dba_objects o, gv$session s  WHERE l.object_id = o.object_id  AND l.session_id = s.sid;

oracle多表查询

基本语法多表查询 笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join).全部连接方式都会先生成暂时笛卡尔积表.笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据随意组合. -- 笛卡尔积 select * from emp, dept; -- 使用公共字段,去掉笛卡尔积 select * from emp, dept where emp.deptno = dept.deptno; -- 查询出每一个雇员的姓名,工作,雇员的直接上级领导的姓名 -- 在emp表中的MGR表示一个雇

Oracle 多表查询(2)

四.统计函数及分组查询 1.统计函数 在之前学习过一个COUNT()函数,此函数的功能可以统计出表中的数据量,实际上这个就是一个统计函数,而常用的统计函数有如下几个: COUNT():查询表中的数据记录: AVG():求出平均值: SUM():求和: MAX():求出最大值: MIN():求出最小值: 范例:测试COUNT().AVG().SUM() 统计出公司的所有雇员,每个月支付的平均工资及总工资. SELECT MAX(sal),MIN(sal) FROM emp; 注意点:关于COUNT

[数据库] Oracle单表查询总数及百分比和数据横向纵向连接

这是最近项目关于SQL语句的,本文简单记录并总结以下几个知识点: 1.如何统计一张表中某个字段的总数,如不同"专业"的学生数及所占百分比: 2.如何联系另一张表进行查询某个字段的总数及百分比: 3.简单介绍decode防止分母为0和trunc保留小数位数等函数: 4.通常复杂的SQL语句会涉及到查询结果横向连接和纵向连接,这里进行介绍. 最近买了本<Oracle查询优化改写技巧与案例·有教无类 落落>,推荐大家也阅读下.后面我也会补充一些相关数据的知识,希望对大家有所帮助吧