如何用SQL将两个表的列用某一相同字段连接起来

Select a1,a2,a3

From 表1

Select a1,c2,c3

From 表2

Select 表1.a1,a2,a3,c2,c3

From 表1,表2

Where 表1.a1=表2.a1

这么拼接在一块,怎么实现?(表1,表2也可能是同一张表)

下面是SAS程序能实现:

proc sql;

create table a0 as

select distinct b.frec_ladle_opening_time as ld_open,a.*

from a0 a,dl_L3.tmmsm25 b

where a.htno=b.htno

order by ld_open;

quit;

 

FineReport 帆软用户21wlka79tN 发布于 2023-5-31 16:28 (编辑于 2023-5-31 16:30)
1min目标场景问卷 立即参与
回答问题
悬赏:13 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户W4933403Lv5见习互助
发布于2023-5-31 16:37

Select case when 表1.a1 is null then 表2.a1 else 表1.a1 end as a1,a2,a3,c2,c3

From 表1

full join 表2

on 表1.a1=表2.a1

  • 帆软用户21wlka79tN 帆软用户21wlka79tN(提问者) 哥 我现在的程序是这样的 前两段独立运行是没有问题的,第三段肯定不是这么拼接的,但是要怎么拼接,搞个具体可以不。 select distinct htno,pono FROM \"BGTAMODLL3\".\"T_ODS_TMMSM21\" a where LDCC_BEGIN_TIME>=\'20230401000000\' and LDCC_BEGIN_TIME<=\'20230501000000\' order by pono select distinct htno,max(LDopen_LDweight) as ladle FROM \"BGTAMODLL3\".\"T_ODS_TMMSM21\" b group by htno select a.htno,a.pono,b.ladle from a,b where a.htno=b.htno
    2023-05-31 16:46 
  • 用户W4933403 用户W4933403 回复 帆软用户21wlka79tN(提问者) with a as( select distinct htno,pono FROM \"BGTAMODLL3\".\"T_ODS_TMMSM21\" a where LDCC_BEGIN_TIME>=\'20230401000000\' and LDCC_BEGIN_TIME<=\'20230501000000\' order by pono ),b as( select distinct htno,max(LDopen_LDweight) as ladle FROM \"BGTAMODLL3\".\"T_ODS_TMMSM21\" b group by htno ) select case when a.htno is null then b.htno else a.htno end as htno,a.pono,b.ladle from a full join b on a.htno=b.htno
    2023-05-31 16:53 
  • 帆软用户21wlka79tN 帆软用户21wlka79tN(提问者) 回复 用户W4933403 哥 你这个能实现,就是以前没用过 CASE when 这个语句,不熟悉这个。这段程序是把 a.htno和b.htno取了并集,就导致a.pono很多没显示出来。怎么实现只保留a.htno的数据呢(没有的htno就不需要了,因为b表没加时间限制,里面的htno有很多),就是需要稍微修改下。
    2023-06-01 09:09 
  • 帆软用户21wlka79tN 帆软用户21wlka79tN(提问者) 回复 用户W4933403 我用了 left jion 好像可以了 是这样的吗?
    2023-06-01 09:12 
  • 用户W4933403 用户W4933403 回复 帆软用户21wlka79tN(提问者) 对的 只保留a的数据就用left join,那个case when也可以取消了,直接用a.htno就可以
    2023-06-01 09:31 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-5-31 16:31

Select 表1.a1,a2,a3,c2,c3

From 表1 

left jion 表2 on 表1.a1=表2.a1

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-5-31 16:32

Select 表1.a1,a2,a3,c2,c3

From 表1,表2

Where 表1.a1=表2.a1

你这么写也是可以的哦

  • 帆软用户21wlka79tN 帆软用户21wlka79tN(提问者) 哥 我现在的程序是这样的 前两段独立运行时没有问题的,第三段肯定不是这么拼接的,但是要怎么拼接 select distinct htno,pono FROM \"BGTAMODLL3\".\"T_ODS_TMMSM21\" a where LDCC_BEGIN_TIME>=\'20230401000000\' and LDCC_BEGIN_TIME<=\'20230501000000\' order by pono select distinct htno,max(LDopen_LDweight) as ladle FROM \"BGTAMODLL3\".\"T_ODS_TMMSM21\" b group by htno select a.htno,a.pono,b.ladle from a,b where a.htno=b.htno
    2023-05-31 16:45 
  • 3关注人数
  • 232浏览人数
  • 最后回答于:2023-5-31 16:37
    请选择关闭问题的原因
    确定 取消
    返回顶部