将 2 个表格显示到 1 个网格视图中

我有 2 个表(表 1 和表 2)。

Table1 和 Table2 的列名相同,但 Table2 比 Table1 多了一些列。

列名如下:

  • 表1 [姓名、姓氏、年龄、性别、身高]

  • 表 2 [姓名、姓氏、年龄、性别、出生日期、出生地]

我正在尝试将两个表中的数据放入 1 个网格视图中。

我试过使用 UNION ALL 但它会返回一个错误,因为列不一样。

是否可以将所有这些列加入 1 个网格视图并相应地显示数据?

例如:姓名、姓氏、年龄、性别、身高、出生日期、出生地

如果是这样,我的 sql 查询会是什么样子?

PS:我在每个表中有 70 多列,所以单独选择它是行不通的


繁星点点滴滴
浏览 180回答 3
3回答

达令说

只需将空值放入缺失的列中并使用UNION ALLselect name, surname, age, gender, height, null, null from table1union allselect name, surname, age, gender, null, dateofbirth, origin from table2正如@TheImpaler 所提到的,没有办法手动选择列。

回首忆惘然

请试试这个。SELECT     Name, Surname, Age, Gender, Height,NULL AS DateOfBirth,NULL AS  Origin FROM     table1 UNION ALLSELECT     Name, Surname, Age, Gender, NULL AS Height, DateOfBirth, OriginFROM     table2 

紫衣仙女

您可以使用 ROW_NUMBER 函数SELECT t1.Column1, t1.Column2, t2.Column3, t2.Column4FROM (   SELECT Column1, Column2,          ROW_NUMBER() OVER (ORDER BY Column1) AS rn   FROM Table1) AS t1FULL OUTER JOIN  (   SELECT Column3, Column4,          ROW_NUMBER() OVER (ORDER BY Column3) AS rn   FROM Table2) AS t2ON t1.rn = t2.rn  
打开App,查看更多内容
随时随地看视频慕课网APP