use*_*980 7 sql-server create-table
我在SQL中有三个表,我需要将它们合并为一个.我需要一个表中所有表中的所有字段.所有表格包含三个不同年份的相同字段.我写了一个代码:
CREATE TABLE COL_TBL_TRAINING_ALL_YEARS AS(
SELECT
COL_TBL_2010_TRN_RESULTS_new.*,
COL_TBL_TRN_RESULTS_GEMS_2011.*,
COL_TBL_TRN_RESULTS_GEMS_2012.*
FROM COL_TBL_2010_TRN_RESULTS_new,
COL_TBL_TRN_RESULTS_GEMS_2011,
COL_TBL_TRN_RESULTS_GEMS_2012
WHERE COL_TBL_2010_TRN_RESULTS_new.SYS_EMP_ID_NR = COL_TBL_TRN_RESULTS_GEMS_2011.SYS_EMP_ID_NR = COL_TBL_TRN_RESULTS_GEMS_2012.SYS_EMP_ID_NR)
Run Code Online (Sandbox Code Playgroud)
并且我在"AS"一词附近出现了错误的语法,并且'='附近的语法不正确
我已经阅读了我的SQL书籍,似乎无法找到解决方法来做到这一点,任何帮助将不胜感激.
你需要两个做两步:
使用UNION ALL,就像它提到的那样.但如果缺少某列,则应使用NULL该列.
您应该将结果插入新表中.
所以看起来应该是这样的:
SELECT *
INTO yournewtablename
FROM (SELECT col1,
col2,
col3
FROM col_tbl_2010_trn_results_new
UNION ALL
SELECT col1,
col2,
col3
FROM col_tbl_trn_results_gems_2011
UNION ALL
SELECT col1,
col2,
NULL AS Col3
FROM col_tbl_trn_results_gems_2012) n
Run Code Online (Sandbox Code Playgroud)
这是一个演示:SQL FIDDLE
| 归档时间: |
|
| 查看次数: |
30266 次 |
| 最近记录: |