这是我的表:
family symbol
1 A
1 B
1 C
2 D
2 F
2 E
我想要的结果是2行:1,A,B,C和2,D,E,F。订单无关紧要。
此:
SELECT T.family, T.symbol,T1.Symbol, T2.symbol
From T
inner join T as T1 on T.family = T1.family
inner join T as T2 on T.family = T2.family
WHERE T.symbol <> T1.symbol
AND T.symbol <> T2.symbol
AND T1.symbol <> T2.symbol
给出这个:
family symbol Symbol symbol
1 A C B
1 A B C
1 B C A
1 B A C
1 C B A
1 C A B
2 D E F
2 D F E
2 F E D
2 F D E
2 E F D
2 E D F
实际表具有多个族值,每个族具有可变数量的符号。
答案 0 :(得分:0)
您正在寻找的是数据透视表。看看
http://msdn.microsoft.com/en-us/library/ms177410.aspx
看看你是否可以将你的逻辑应用于一个支点,并且应该给你想要的结果。
答案 1 :(得分:0)
试试这个:
select family, group_concat(symbol separator ',')
from T
group by family
它不是完全你想要的东西,但也许它足够接近。它会将每个族的所有不同符号连接成单列。查询很简单,您不需要使用OLAP或任何其他复杂的SQL构造。
答案 2 :(得分:0)
在Show a one to many relationship as 2 columns - 1 unique row (ID & comma separated list)中有针对Informix的GROUP_CONCAT的完整实现。它肯定会处理你显示的数据。