как получить комбинацию строк через запрос - PullRequest
0 голосов
/ 17 марта 2012

У меня есть таблица со следующими полями и данными.

id  type value
1   1    1
2   2    1
3   2    2
4   2    3

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

1,1
1,2
1,3

, и если у меня несколько значенийв типе 1 он должен сделать то же самое

, поэтому, если данные

 id  type value
 1   1    1
 2   1    2
 3   2    1
 4   2    2
 5   2    3

, я должен получить результат

1,1
1,2
1,3
2,1
2,2
2,3

Оцените любую помощь по этому вопросу.

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Это выглядит так:

SELECT t1.value, t2.value
  FROM table t1
  JOIN table t2
    ON t1.type = 1
   AND t2.type = 2
;

, который также можно записать как:

SELECT t1.value, t2.value
  FROM ( SELECT value FROM table WHERE type = 1 ) t1
 CROSS
  JOIN ( SELECT value FROM table WHERE type = 2 ) t2
;

(Первое проще, но последнее проясняет, что это семантически CROSS JOIN, поскольку объединение на самом деле не зависит от каких-либо отношений между присоединенными записями.)

0 голосов
/ 17 марта 2012
SELECT ISNULL(CAST([type] as varchar(20)), '')
     + ','
     + ISNULL(CAST([value] as varchar(20)), '')
     AS CommaSeparated 
FROM types
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...