Объединить значения из одного столбца - PullRequest
0 голосов
/ 01 июля 2019

У меня есть таблица со следующей структурой:

Type    Value
A       abc
A       def
A       xyz

Мне нужен набор результатов, который будет представлять собой все возможные комбинации «Значение», но также должен быть отличным.

Набор результатов:

Value
abc def
abc xyz
def xyz
abc def xyz

Если в наборе результатов есть «abc def», я не хочу, чтобы «def abc» отображался.Хотя это два разных значения, для меня это дубликаты.Я застрял на 2 вещах:

  1. Как устранить дубликаты?
  2. В приведенной выше структуре таблицы у меня был один тип "A" с 3 значениями.Одна и та же таблица будет иметь несколько типов, и каждый тип будет иметь разное количество значений.Например, у меня будет тип "B" с, скажем, 4 значениями.Как выяснить, сколько раз мне нужно перебирать каждый тип.

Любая помощь будет оценена.

1 Ответ

1 голос
/ 01 июля 2019

Попробуйте следующий запрос-

WITH CTE (id,Value)
AS
(
    SELECT DISTINCT 1,Value 
    FROM your_table 
)


SELECT A.Value + ' '+ B.Value  AS Value
FROM CTE A 
INNER JOIN CTE B ON A.id = B.id
WHERE (A.Value <> B.Value AND A.Value > B.Value) 

UNION ALL

SELECT A.Value + ' '+ B.Value  + ' '  + C.Value AS Value
FROM CTE A 
INNER JOIN CTE B ON A.id = B.id
INNER JOIN CTE C ON A.id = C.id
WHERE 
(
    A.Value  <>B.Value AND A.Value  >B.Value 
    AND A.Value <> C.Value AND  A.Value > C.Value 
    AND B.Value <> C.Value AND B.Value > C.Value
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...