我有一个包含以下字段和数据的表格。
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
感谢您的任何帮助。
答案 0 :(得分:1)
看起来像:
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
,因为连接实际上并不依赖于连接记录之间的任何关系。)
答案 1 :(得分:0)
SELECT ISNULL(CAST([type] as varchar(20)), '')
+ ','
+ ISNULL(CAST([value] as varchar(20)), '')
AS CommaSeparated
FROM types