SQL进阶教程1-5 用外连接进行行列转换之 列转行
实例:
将上述表转换为如下格式:
解决方法:创建视图存储子女信息表中的所有子女:
CREATE VIEW Children(child) AS SELECT child_1 FROM Personnel UNION SELECT child_2 FROM Personnel UNION SELECT child_3 FROM Personnel; child
SELECT EMP.employee, CHILDREN.child FROM personnel EMP LEFT JOIN CHILDREN ON CHILDREN.child IN (EMP.child_1, EMP.child_2, EMP.child_3)
在外连接中,使用IN谓词指定,当表Personnel里‘child_1’ 'child_2' 'child_3'列的名字存在于children视图里时,返回该名字,否则返回NULL。
可见外连接的连接条件不一定是等值连接,也可以使用IN这样的谓词。