oracle中如何写sql 把2条 合并为一条! 10

一张表idxy---------------01a02b如何写sql变成idx1y1x2y2---------------------------01a2b跪求高手详解1... 一张表
id x y
---------------
0 1 a
0 2 b
如何写sql 变成
id x1 y1 x2 y2
---------------------------
0 1 a 2 b 跪求高手详解
1楼的方法 会出现
id x1 y1 x2 y2
---------------------------
0 1 a 2 b
0 2 b 1 a
的这种情况,但是我只要 一条记录
展开
 我来答
liudan_198805
2010-12-25
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
--很典型的列转换为行sql
WITH TEMP AS --将你的数据创建一个子查询,省去建表和插入语句
(SELECT 0 "id", 1 "x", 'a' "y"--带" "的列名表示区分大小写
FROM DUAL
UNION ALL
SELECT 0, 2, 'b' FROM DUAL)
SELECT "id",
MAX(DECODE("x", 1, "x", NULL)) X1,--使用decode函数,列转换为行
MAX(DECODE("x", 1, "y", NULL)) Y1,
MAX(DECODE("x", 2, "x", NULL)) X2,
MAX(DECODE("x", 2, "y", NULL)) Y2
FROM temp
GROUP BY "id"--通过id分组

参考资料: selfe

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spiderrobot
2010-12-12 · TA获得超过871个赞
知道小有建树答主
回答量:930
采纳率:0%
帮助的人:573万
展开全部
select t1.id,t1.x x1,t1.y y1,t2.x x2,t2.y y2 from t t1, t t2
where t1.id=t2.id and t1.x < t2.x ;
不要动不动都跪求,没必要,不是很难的东西也,
写的并不好,知道你只是举个例子,
t1.x < t2.x 代表你根据数据的特殊规律添加的选择条件,具体你的数据可以改这个条件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
功若山W
2010-12-21
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
select * from (
select id,x x1, lead(x, 1, null) over(partition by id order by x) x2 ,y y1,
lead(y, 1, null) over(partition by id order by y) y2 from table_test)
where x2 is not null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gdiplq
2010-12-12 · TA获得超过1720个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:233万
展开全部
select rownum from dual connect by rownum <20;

---
以上,希望对你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jpylj
2010-12-12 · 超过41用户采纳过TA的回答
知道答主
回答量:213
采纳率:0%
帮助的人:135万
展开全部
select a.id,a.x,a.y,b.x,b.y from t a join (select * from t) b on a.id=b.id group by a.id,a.x,a.y,b.x,b.y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式