我有一张桌子
rate_id service_id
1 1
1 2
2 1
2 3
3 1
3 2
4 1
4 2
4 3
我需要在表中找到并在rate_id中插入sevice_ids的唯一组合...但是当在另一个rate_id中重复组合时我不希望它被插入
在上面的例子中有3种组合
1,2
1,3
1,2,3
如何查询第一个表以获得唯一组合?
感谢名单!
答案 0 :(得分:4)
尝试做这样的事情:
DECLARE @TempTable TABLE ([rate_id] INT, [service_id] INT)
INSERT INTO @TempTable
VALUES (1,1),(1,2),(2,1),(2,3),(3,1),(3,2),(4,1),(4,2),(4,3)
SELECT DISTINCT
--[rate_id], --include if required
(
SELECT
CAST(t2.[service_id] AS VARCHAR) + ' '
FROM
@TempTable t2
WHERE
t1.[rate_id] = t2.[rate_id]
ORDER BY
t2.[rate_id]
FOR XML PATH ('')
) AS 'Combinations'
FROM
@TempTable t1
我将值放在表变量中只是为了便于测试SELECT查询。