输出

2012-02-19 47 views
0

我有2个表所示:输出

[people1]:

|First Name*| Last Name*| 
|   |   | 
|Martin  | Green  | 
|Peter  | Blue  | 

[people2]:

|Name*  | 
|   | 
|Linda  | 
|Jane Yellow| 

和什么我的期望的输出SQL命令是:

|Name   | 
|    | 
|Martin Green | 
|Peter Blue  | 
|Linda   | 
|Jane Yellow | 

我不能更改t他2桌的结构。

回答

2

它有助于了解数据库 - 字符串连接不一致。

对于SQL Server和MySQL:

SELECT p1.first_name +' '+ p1.last_name AS name 
    FROM PEOPLE1 p1 
UNION ALL 
SELECT p2.name 
    FROM PEOPLE2 p2 

对于Oracle,PostgreSQL的:

SELECT p1.first_name ||' '|| p1.last_name AS name 
    FROM PEOPLE1 p1 
UNION ALL 
SELECT p2.name 
    FROM PEOPLE2 p2 

双管现在是ANSI意味着连接字符串的 - MySQL的可能支持它,如果启用了严格的ANSI 。

UNION运算符允许组合多个查询,并删除重复项。 UNION ALL不会删除重复项,并且速度更快。所有UNIONed查询中的列数都必须相同,并且数据类型应该在每个位置匹配。

1

您可以使用union运算符。

SELECT concat(first_name,last_name) as name FROM table1 
UNION 
SELECT concat(first_name,last_name) FROM table2