问题描述:
1、假设有表
t1表,包含四列
 s1 a    b    c
 1  a    a    a
 2  b    b    b 
.........t2表,包含2列
s2  ff
1   77
2   88
............如何生成这样的合并视图s1   a   b    c  ff
1    a   a    a    
2    b   b    b 
1                77
2                88问题2:
假设能生成上述视图,现在要请求,标识出数据是来源
假设来自t1白的数据标示符为xx,来自t2表的数据标识为yy
那么,如何生成这样的视图:
s1   a   b    c  ff   mm(新列)
1    a   a    a       xx
2    b   b    b       xx
1                77   yy
2                88   yy
要求是不能修改t1,t2的表结构!!!!分不够说,另开贴加

解决方案 »

  1.   

    使用union和null在问题1中试过,提示列值不匹配!!
      

  2.   

    问题1:
    select s1, a,    b,    c,null ff from t1
    union all
    select null s1, null a,  null b,null c, ff from t2;
      

  3.   

    问题2: 
    select s1, a,    b,    c,null ff,'XX' mm from t1 
    union all 
    select null s1, null a,  null b,null c, ff,'YY' mm from t2;
      

  4.   

    技术上倒是不难题,只是这个需求有点奇怪..
    楼上回答已经差不多了。union all下面的列别名就不用加了
    select s1,a,b,c,null ff,'XX' mm from t1
    union all
    select s1,null,null,null,ff,'YY' from t2
      

  5.   

    创建视图
    create view VIEWNAME
    as
    select s1,a,b,c,null ff,'XX' mm from t1 
    union all 
    select s1,null,null,null,ff,'YY' from t2
      

  6.   

    我的问题1,就是用union 和null做的,提示错误ora-01790
    select g_num,g_name,g_departnum,g_departname,g_ttm null,g_tvalue,null g_tvaluek from gjj_2
    union all select g_num,g_name,g_departnum,g_departname,null g_ttm,g_tvaluek,g_tmk from gjj_3
    哪里错了,请给个说明
      

  7.   

    sorry
    select g_num,g_name,g_departnum,g_departname,g_ttm,g_tvalue,null g_tvaluek from gjj_2 
    union all select g_num,g_name,g_departnum,g_departname,null g_ttm,g_tvaluek,g_tmk from gjj_3 
    哪里错了,请给个说明 
      

  8.   

    ora-01790是union all的2个字段类型不同导致的。
    估计你把不同类型的字段进行的union all
      

  9.   

    select g_num,g_name,g_departnum,g_departname,g_ttm,g_tvalue,null g_tvaluek from gjj_2 
    union all
    select g_num,g_name,g_departnum,g_departname,null g_ttm,g_tvaluek,g_tmk from gjj_3 
    最后两个列名不匹配
      

  10.   

    gjj_2中包含g_ttm是个date的列,在gjj_3 里是空的,如何写语句,我觉得写法好像没问题啊!!!!
      

  11.   

    gjj_2的特殊列为:g_ttm(时间)、g_tvalue(数值)
    gjj_3的特殊列为:没有g_ttm列,g_tvaluek列也是数值,g_tmk是gjj_2没有的列是字符串值其余列都一样