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
的这种情况,但是我只要 一条记录 展开
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
的这种情况,但是我只要 一条记录 展开
7个回答
展开全部
--很典型的列转换为行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分组
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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 代表你根据数据的特殊规律添加的选择条件,具体你的数据可以改这个条件。
where t1.id=t2.id and t1.x < t2.x ;
不要动不动都跪求,没必要,不是很难的东西也,
写的并不好,知道你只是举个例子,
t1.x < t2.x 代表你根据数据的特殊规律添加的选择条件,具体你的数据可以改这个条件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select rownum from dual connect by rownum <20;
---
以上,希望对你有所帮助。
---
以上,希望对你有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询