By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
--Sql Server 2014 Express Edition
--Batches are separated by 'go'
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
ins | outs |
---|---|
Orange | Black,White |
null | Black,White,Orange |
White,Orange | Black |
White | Black,Orange |
Black,Orange | White |
Black | White,Orange |
Black,White,Orange | null |
Black,White | Orange |