首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL中操作连接列

如何在SQL中操作连接列
EN

Stack Overflow用户
提问于 2016-07-07 21:42:52
回答 0查看 41关注 0票数 0

假设我有以下数据集

代码语言:javascript
复制
WITH dataset (hno,sorder,level,dummy,maxorder) AS 
(
SELECT 1,   1,  'val1', 'NULL1',  5 FROM dual UNION ALL
SELECT 1,   2,  'val2', 'NULL2',  5 FROM dual UNION ALL
SELECT 1,   3,  'val3', 'NULL3',  5 FROM dual UNION ALL
SELECT 1,   4,  'val4', 'NULL4',  5 FROM dual UNION ALL
SELECT 1,   5,  'val5', 'NULL5',  5 FROM dual)
SELECT *
FROM dataset;

HNO SORDER  LEVEL   DUMMY   MAXORDER
1       4   val4    NULL4   5
1       2   val2    NULL2   5
1       3   val3    NULL3   5
1       1   val1    NULL1   5
1       5   val5    NULL5   5

我还需要另一个名为TEXT的列

代码语言:javascript
复制
HNO SORDER  LEVEL   DUMMY   MAXORDER    TEXT
1       4   val4    NULL4   5           val1,val2,val3,val4,NULL5
1       2   val2    NULL2   5           val1,val2,NULL3,NULL4,NULL5
1       3   val3    NULL3   5           val1,val2,val3,NULL4,NULL5
1       1   val1    NULL1   5           val1,NULL2,NULL3,NULL4,NULL5
1       5   val5    NULL5   5           val1,val2,val3,val4,val5

其思想是操作SQL的动态占位符。因此,如果排序顺序是介于1…n之间的范围,那么对于SQL值x,我需要从列LEVEL返回1到x的值,然后从dummy for x+1返回值到n,所有这些值都以逗号分隔值的形式连接在一起,最重要的是,所有这些值都在一个SQL值中。这个最大顺序可以是任何数字,并且它不是固定的。WX2缺少递归的CTE,这使得它很难实现。

有什么建议吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38247087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档