表之间的关联 Oracle

xiaoxiao2026-04-17  3

<script></script>   分类:计算机     为了做报表,经常对数据库里数据的操作,应该算是自己的一点小小的经验.     在这里为了方便叙述,表1 : 用A 表示 ;表2: 用B表示;    A: A1,A2,A3    B: B1,B2,B3 1.直连   select A.* ,B.* from A,B where  A.A1=B.B1   作用:求两个表中的交集. 2.左连或右连   select A.*,B.* from A,B where  A.A1=B.B1(+) 或   select A.*,B.* from A,B where  A.A1(+)=B.B1   作用: 由表A ,带出表B中信息        或由表B,带出表A中信息 3.并集   select A.*,B.* from A,B where A.A1=B.B1(+)   union   select A.*,B.* from A,B where A.A1(+)=B.B1   作用: 求两个表之间的并集. 4.分组   select col1,col2,sum(col3) from A    group by  col1,col2 5.SQL里的Switch   select decode(col1,'男','N','女','Y','nothing') from A   作用: 如果 表A 中col1里的数据是 "男" ,那输出"N",如果是 "女" ,则输出"Y",如果都不是那就输出"nothing" 6.SQL 里的 If   select ( case when A>B then 'YES' else 'NO' end) from A   作用: 如果A>B则输出'YES' 否则输出'NO' 7.将多行相关数据做为一行输出   例:   表A 数据      a  b  c1     a  b  c2     a  b  c3     SELECT COL1, COL2, MAX(COL3)  FROM (SELECT A.COL1              ,A.COL2              ,A.COL3 || ',' || LAG(A.COL3, 1, NULL) OVER(PARTITION BY A.COL1, A.COL2 ORDER BY A.COL3) || ',' || LAG(A.COL3, 2, NULL) OVER(PARTITION BY A.COL1, A.COL2 ORDER BY A.COL3) AS COL3          FROM A) GROUP BY COL1, COL2   输出结果  : a  b  c3,c2,c1
转载请注明原文地址: https://www.6miu.com/read-5047489.html

最新回复(0)