我有2个表(表1和表2)。
表1和表2具有相同的列名,但表2比表1多了一些列。
列名如下:
我正在尝试将两个表中的数据放入1个gridview中。
我曾经尝试使用UNION ALL,但是由于列之间的相同,它会抛出错误。
是否可以将所有这些列连接到1个gridview中并相应地显示数据?
例如:姓名,姓氏,年龄,性别,身高,出生日期,出身
如果是这样,我的SQL查询会是什么样?
PS:我在每个表格中都有70列以上的列,因此单独选择此列将无法解决
答案 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