读书人

查询组合有关问题

发布时间: 2012-06-07 15:05:14 作者: rapoo

查询组合问题
有表 ID VALUE
1 A
2 B
3 C
4 D
.
.
.
要从value选择3个来组合 例如 ID VALUE
1 ABC
2 ABD
3 ACD
4 BCD
只需查到其中一种组合,不需要重复的,如(ABC跟ACB归为一行ABC或ACB)请问如何查询

[解决办法]

SQL code
--> 测试数据:[test]if object_id('[test]') is not null drop table [test]create table [test]([ID] int,[VALUE] varchar(1))insert [test]select 1,'A' union allselect 2,'B' union allselect 3,'C' union allselect 4,'D'select px=ROW_NUMBER()over(order by (select 1)), a.[VALUE]+b.VALUE+c.VALUE as VALUE from test across join test bcross join test cwhere a.VALUE<>b.VALUE and a.VALUE<>c.VALUE and b.VALUE<>c.VALUE/*px    VALUE------------1    BAC2    BAD3    CAB4    CAD5    DAB6    DAC7    ABC8    ABD9    CBA10    CBD11    DBA12    DBC13    ACB14    ACD15    BCA16    BCD17    DCA18    DCB19    ADB20    ADC21    BDA22    BDC23    CDA24    CDB*/ 

读书人网 >SQL Server

热点推荐