首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用包含列表查找值的组合

使用包含列表查找值的组合
EN

Stack Overflow用户
提问于 2018-10-28 06:05:45
回答 1查看 84关注 0票数 0

给定一列值(“Black”、“White”、“Orange”),其序列号分别为1、2、3,我需要找到如下所示的排列和组合。

彩色序列 黑1 白2 橙色3 ColorCombi表,NotIn中有2列 黑白橙 白黑橙 橙色,黑色,白色 黑,白橙 黑橙白 橙色,白色黑色 黑、白、橙零

EN

回答 1

Stack Overflow用户

发布于 2018-10-28 13:16:20

这是很难做到的。您可以使用递归的CTE来完成这个任务:

代码语言:javascript
复制
with t as (
      select v.*
      from (values ('Black', 1), ('White', 2), ('Orange', 3)) v(color, seq)
     ),
     combos as (
      select cast('' as varchar(max)) as ins, cast('' as varchar(max)) as outs, 0 as seq
      union all
      select c.ins + v.ins, c.outs + v.outs, c.seq + 1
      from t cross apply
           (values (',' + t.color, ''), ('', ',' + t.color)) as v(ins, outs) join
           combos c
           on t.seq = c.seq + 1
     )
select top (1) with ties stuff(ins, 1, 1, '') as ins, stuff(outs, 1, 1, '') as outs
from combos
order by seq desc ;

这里是db<>fiddle。

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

https://stackoverflow.com/questions/53028831

复制
相关文章

相似问题

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