SQL Server数据库合并两列?

时间:2011-08-26 19:54:20

标签: sql-server

我有一个表格如下:

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。有谁知道查询?

2 个答案:

答案 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

不漂亮,但它会返回你想要的东西。