将2个表显示到1个gridview中

时间:2019-03-26 12:12:05

标签: c# sql

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

表1和表2具有相同的列名,但表2比表1多了一些列。

列名如下:

  • 表1 [姓名,姓氏,年龄,性别,身高]
  • 表2 [姓名,姓氏,年龄,性别,出生日期,起源]

我正在尝试将两个表中的数据放入1个gridview中。

我曾经尝试使用UNION ALL,但是由于列之间的相同,它会抛出错误。

是否可以将所有这些列连接到1个gridview中并相应地显示数据?

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

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

PS:我在每个表格中都有70列以上的列,因此单独选择此列将无法解决

3 个答案:

答案 0 :(得分:1)

只需将空值放入缺少的列中并使用UNION ALL

select name, surname, age, gender, height, null, null from table1
union all
select name, surname, age, gender, null, dateofbirth, origin from table2

如@TheImpaler所述,无法手动选择列。

答案 1 :(得分:1)

您可以使用ROW_NUMBER函数

SELECT t1.Column1, t1.Column2, t2.Column3, t2.Column4
FROM (
   SELECT Column1, Column2,
          ROW_NUMBER() OVER (ORDER BY Column1) AS rn
   FROM Table1) AS t1
FULL OUTER JOIN  (
   SELECT Column3, Column4,
          ROW_NUMBER() OVER (ORDER BY Column3) AS rn
   FROM Table2) AS t2
ON t1.rn = t2.rn  

答案 2 :(得分:0)

请尝试这个。

SELECT 
    Name, Surname, Age, Gender, Height,NULL AS DateOfBirth,NULL AS  Origin 
FROM 
    table1 

UNION ALL

SELECT 
    Name, Surname, Age, Gender, NULL AS Height, DateOfBirth, Origin
FROM 
    table2