Select 2列值在oracle中为一个
Select 2 column values as one in oracle
首先,我要的不是 CONCAT,而是 UNION。但我不能执行 UNION,因为 SELECT 查询中还有其他列。
下面是我的 table 结构和我搜索 EmpId=1 时的预期结果。
这是我到目前为止尝试过的方法,
select emp.empId, emp.name, STREET
from employee emp, mailing_address mail, office_address off
where emp.empId=mail.empId and emp.empId=off.empId
我只是不知道应该在 STREET 中放什么,这样我就可以一次从 mailing_address 和 office_address table 中获取街道。请帮忙。
SELECT e.EmpId,
e.Name,
m.Street
FROM EMPLOYEE e
INNER JOIN
Mailing_Address m
ON ( e.EmpID = m.EmpID )
WHERE e.EmpID = 1
UNION
SELECT e.EmpId,
e.Name,
o.Street
FROM EMPLOYEE e
INNER JOIN
Office_Address o
ON ( e.EmpID = o.EmpID )
WHERE e.EmpID = 1
首先,我要的不是 CONCAT,而是 UNION。但我不能执行 UNION,因为 SELECT 查询中还有其他列。
下面是我的 table 结构和我搜索 EmpId=1 时的预期结果。
这是我到目前为止尝试过的方法,
select emp.empId, emp.name, STREET
from employee emp, mailing_address mail, office_address off
where emp.empId=mail.empId and emp.empId=off.empId
我只是不知道应该在 STREET 中放什么,这样我就可以一次从 mailing_address 和 office_address table 中获取街道。请帮忙。
SELECT e.EmpId,
e.Name,
m.Street
FROM EMPLOYEE e
INNER JOIN
Mailing_Address m
ON ( e.EmpID = m.EmpID )
WHERE e.EmpID = 1
UNION
SELECT e.EmpId,
e.Name,
o.Street
FROM EMPLOYEE e
INNER JOIN
Office_Address o
ON ( e.EmpID = o.EmpID )
WHERE e.EmpID = 1