问一个sql:同一个字段下null合并

[复制链接]
查看11 | 回复4 | 2011-11-1 16:26:29 | 显示全部楼层 |阅读模式


QQ截图20120927095355.jpg (41.16 KB, 下载次数: 9)
下载附件
2012-9-27 09:54 上传

如下图,同一个subjcdoe 1001对应的outflag和pk_corp是一个,现在想组合到一列,去掉null
变成


2.jpg (25.04 KB, 下载次数: 1)
下载附件
2012-9-27 09:56 上传



回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
试试这个:
select max(outflag), max(pk_corp), subjcode from table group by subjcode
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
cavellyu 发表于 2012-9-27 10:21
试试这个:
select max(outflag), max(pk_corp), subjcode from table group by subjcode

还真的可以啊,这是什么原理的?为什么max之后就跑到一行了?


3.jpg (59.11 KB, 下载次数: 2)
下载附件
2012-9-27 10:39 上传


回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
这就是group by和聚合函数(max(),min()...)的用途。查查group by的用法,会有帮助
回复

使用道具 举报

千问 | 2011-11-1 16:26:29 | 显示全部楼层
这个感觉也不错,自连接
ID1 ID2 ID3
--- --- ---
1 1
1 1
2 2 2
3 3
3 3

ID1ID2ID3
--- ---------- ----------
1
1
1
2
2
2
3
3
3
SELECT distinct *
FROM (SELECT a.id1, nvl(a.id2, b.id2) id2, nvl(a.id3, b.id3) id3
FROM lsb_yzw_a a

left join lsb_yzw_a b

on a.id1 = b.id1)
WHERE id2 is not null
and id3 is not null
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行