Sql 将两个表与表名称列合并
我想合并两张桌子(Student1,Student2) 1-学生1Sql 将两个表与表名称列合并,sql,ansi-sql,Sql,Ansi Sql,我想合并两张桌子(Student1,Student2) 1-学生1 | student_code | name | -------------------------- | 1 | katia | | 2 | roger | | 3 | ken | 2-学生2 | student_code | name | -------------------------- | 3
| student_code | name |
--------------------------
| 1 | katia |
| 2 | roger |
| 3 | ken |
2-学生2
| student_code | name |
--------------------------
| 3 | katia |
| 4 | roger |
| 5 | ken |
然后我想得到这样的结果
结果
|table_name| student_code | name |
-------------------------------------
|Student1 | 1 | katia |
|Student1 | 2 | roger |
|Student1 | 3 | ken |
|Student2 | 3 | katia |
|Student2 | 4 | roger |
|Student2 | 5 | ken |
我只想使用ANSI sql
select 'Student1' AS table_name,student_code,name from student1
union
select 'Student2' AS table_name,student_code,name from student2
我假设您知道UNION
和UNION ALL
之间的区别,UNION
带来唯一的记录,这与对集合执行的UNION
相同,而UNION ALL
也会带来重复的行
在您的情况下,即使使用union,它也会带来重复项,因为第一列区分了行
我假设您知道UNION
和UNION ALL
之间的区别,UNION
带来唯一的记录,这与对集合执行的UNION
相同,而UNION ALL
也会带来重复的行
在您的情况下,即使使用union,它也会带来重复项,因为第一列区分了行。您可以使用
SELECT 'Student1' AS table_name, student_code, name FROM Student1
UNION ALL
SELECT 'Student2' AS table_name, student_code, name FROM Student2
你可以用
SELECT 'Student1' AS table_name, student_code, name FROM Student1
UNION ALL
SELECT 'Student2' AS table_name, student_code, name FROM Student2
谢谢非常有帮助,谢谢!这很有帮助。