我有一个表格如下:
empid empname homephone homeadd workphone workadd
1 ron 209999000 1234st 222222 unit-20c
2 dd 2222333 unit56c 3444 bloor
我想创建一个临时表,如下所示:
empid empname phone add
1 ron 209999000 1234st
1 ron 222222 unit-20c
2 dd 2222333 unit56c
2 dd 3444 bloor
我想在列电话下合并家庭电话和工作电话,并在列添加下合并homeadd和workadd。有谁知道查询?
答案 0 :(得分:1)
如果您知道要“合并”的列数,可以进行联合以使它们全部合并
select empID, empName, Homephone, Homeaddr from temptable
union
select empID, empName, WorkPhone, WorkAddr from temptable
union
select empID, empName, ExtraPhone, ExtraAddress from temptable
答案 1 :(得分:0)
如何合并?有coalesce()和concat() - coalesce将返回第一个非null参数,concat将其所有字段作为单个字符串返回。你想要什么?找到的第一个地址/电话,还是所有电话/地址?
select empid, empname, homephone as phone, homeadd as add
from yourtable
union
select empid, empname, workphone as phone, workadd as add
from yourtable
不漂亮,但它会返回你想要的东西。