请教一个SQL写法

db2_aixer 2012-07-31 02:34:51
请教下各位一个SQL写法,突然想不出来了
p_name sun_p_name
A 111
A 122
C 333
D 555
B 566
B 3221321

显示为:
p_name sun_p_name
A 111
122
B 566
3221321
C 333
D 555
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang91wang 2012-08-07
  • 打赏
  • 举报
回复
用group by 进行分组
db2_aixer 2012-08-07
  • 打赏
  • 举报
回复
感谢各位回复
leohuang 2012-07-31
  • 打赏
  • 举报
回复
try
-----------------------------------------------

WITH t AS
(SELECT 'A' AS p_name, '111' AS sun_pname
FROM dual
UNION ALL
SELECT 'A' AS p_name, '122' AS sun_pname
FROM dual
UNION ALL
SELECT 'C' AS p_name, '333' AS sun_pname
FROM dual
UNION ALL
SELECT 'D' AS p_name, '555' AS sun_pname
FROM dual
UNION ALL
SELECT 'B' AS p_name, '566' AS sun_pname
FROM dual
UNION ALL
SELECT 'B' AS p_name, '3221321' AS sun_pname FROM dual)

SELECT decode(row_number() over(PARTITION BY p_name ORDER BY sun_pname), 1, p_name, ''), sun_pname FROM t
db2_aixer 2012-07-31
  • 打赏
  • 举报
回复
像p_name一样的值 只显示一行
A 111
这里没有显示 122
maxsisi286 2012-07-31
  • 打赏
  • 举报
回复
对2个字段都group by,并且把p_name字段升序

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧