普通的行专列;oracle行专列;更新中。。。
作者:互联网
题记
本来想写一个完整的表创建,但是其他人都写过啦,要不这样,你们有什么行转列的问题给我留言,我直接回答如何
Oracle的行转列
这篇文章不错:https://blog.csdn.net/huay_li/article/details/82914161
1 SELECT 2 * 3 FROM table 4 PIVOT(MAX(A) , MAX(B) as b, MAX(V) as c FOR (D) IN ( 'xiaoming' AS xiaoming ) 其中max是函数,c是要进行循环的字段,in是循环的内容,
普通的行转列
1 --nvl(a,b)->如果a不存在就显示b,否则显示a 2 --decode,oracle独有的if,else;eg:decode(a,1,2);如果a=1,就返回2 3 原理就是多表联查,利用全连接(full join)拼接字段 select A.*,B.* from A full join B on A.x=B.x
说到全连接 不得不说说 左连 全连的区别
转载:这篇文章生动形象;一图看懂join、left join、right join、fulljoin间的区别
INNER JOIN 关键字在表中存在至少一个匹配时返回行。
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行。FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
INNER JOIN 关键字在表中存在至少一个匹配时返回行。
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行。FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
标签:table2,table1,JOIN,专列,更新,左表,关键字,oracle,匹配 来源: https://blog.51cto.com/xiaoshahai/2823994