ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » sql数据组合的问题

标题: [SQL] sql数据组合的问题
离线 萨拉牛丁



精华贴数 0
个人空间 0
技术积分 20 (56665)
社区积分 0 (1865626)
注册日期 2008-9-16
论坛徽章:0
      
      

发表于 2008-9-17 16:47 
sql数据组合的问题

现在现在有这样一个表
里边的数据结构是
ID      NAME           SEX       money
1        zidane       male        100
2        beckham    male        1000
3         ' '                  ' '          500
3         kaka          male        ' '


用什么办法查询出来的结果会是这个样子的

ID      NAME           SEX       money
1        zidane       male        100
2        beckham    male        1000
3          kaka          male       500


也就是说相同的ID情况下需要把记录捏合到一起显示

望大家赐教


只看该作者    顶部
离线 过过招
坚挺旗舰
Guiding Star


精华贴数 0
个人空间 0
技术积分 975 (1943)
社区积分 27 (6734)
注册日期 2005-6-10
论坛徽章:0
      
      

发表于 2008-9-17 16:55 
name和sex都能为空?那要都处理下了,呵呵

[ 本帖最后由 过过招 于 2008-9-17 16:58 编辑 ]


__________________




只看该作者    顶部
离线 bell6248
高级会员



来自 shanghai
精华贴数 0
个人空间 0
技术积分 3994 (369)
社区积分 45 (5252)
注册日期 2004-7-4
论坛徽章:16
ITPUB元老参与2007年甲骨文全球大会(中国上海)纪念会员2007贡献徽章授权会员ITPUB新首页上线纪念徽章 
      

发表于 2008-9-17 16:56 



select id, max(name), max(sex), max(money)
from t group by id;





__________________
Better information! Better results!
Oracle is the information company!!!
只看该作者    顶部
离线 萨拉牛丁



精华贴数 0
个人空间 0
技术积分 20 (56665)
社区积分 0 (1865626)
注册日期 2008-9-16
论坛徽章:0
      
      

发表于 2008-9-17 17:03 
回复 #2 过过招 的帖子

俺确实是个球迷 呵呵


只看该作者    顶部
离线 萨拉牛丁



精华贴数 0
个人空间 0
技术积分 20 (56665)
社区积分 0 (1865626)
注册日期 2008-9-16
论坛徽章:0
      
      

发表于 2008-9-17 17:03 
回复 #3 bell6248 的帖子

谢谢你的回答 !


只看该作者    顶部
离线 过过招
坚挺旗舰
Guiding Star


精华贴数 0
个人空间 0
技术积分 975 (1943)
社区积分 27 (6734)
注册日期 2005-6-10
论坛徽章:0
      
      

发表于 2008-9-17 17:05 
回复 #4 萨拉牛丁 的帖子

呵呵,同迷~~~

上面的money,是否需要相加一下?sum(money)


__________________




只看该作者    顶部
离线 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 6044 (226)
社区积分 61169 (7)
注册日期 2007-9-10
论坛徽章:44
地主之星地主长老紫蜘蛛月度论坛发贴之星ITPUB评论家ITPUB评论家
BLOG每周发帖之星在线时间在线时间   

发表于 2008-9-17 22:19 
有多行要相加那就用sum


__________________
马无夜草不肥,人无外财不富。
-------------------------------
小店:http://shop34160316.taobao.com/
欢迎光临,店家是俺GF
只看该作者    顶部
离线 mihawk
卡卡西


来自 杭州
精华贴数 1
个人空间 54
技术积分 1353 (1289)
社区积分 53 (4821)
注册日期 2004-12-27
论坛徽章:4
2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:羽毛球生肖徽章2007版:鸡  
      

发表于 2008-9-18 10:42 


QUOTE:
原帖由 bell6248 于 2008-9-17 16:56 发表



select id, max(name), max(sex), max(money)
from t group by id;




正解!


__________________
◆◆决定一个SQL执行效率的是执行计划, 而不是SQL的写法.◆◆
1. 数据真实的"统计"的分布情况
2. 系统视图中记录的统计信息
3. 实际每个SQL执行时对应的数据情况
只看该作者    顶部
离线 hailang11251
初级会员



精华贴数 0
个人空间 0
技术积分 2 (212793)
社区积分 0 (1218699)
注册日期 2006-12-17
论坛徽章:0
      
      

发表于 2008-9-18 12:53 
回复 #8 mihawk 的帖子

select id, max(name), max(sex), sum(money)
from t group by id;


只看该作者    顶部
离线 junecaoic
一般会员



精华贴数 0
个人空间 0
技术积分 164 (11395)
社区积分 0 (944618)
注册日期 2006-5-20
论坛徽章:0
      
      

发表于 2008-9-18 14:27 
SYS_CONNECT_BY_PATH

SELECT id,
       LTRIM(MAX(SYS_CONNECT_BY_PATH(name,',')),',') name,
       LTRIM(MAX(SYS_CONNECT_BY_PATH(sex,',')),',') sex,
       sum(money) money
FROM (
SELECT id,name,sex,money,
ROW_NUMBER() OVER(PARTITION BY id ORDER BY id) as CURR,
ROW_NUMBER() OVER(PARTITION BY id ORDER BY id) - 1 as PREV
FROM salary
)
START WITH CURR = 1
CONNECT BY PREV = PRIOR CURR and id = PRIOR id
GROUP BY id


__________________
Junecaoic
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问