一个表里四条记录
a
b
c
d
写一个SQL语句,查出他们所有两两组合的可能(abcd是Table里的一个字段name的值)
我当时晕了
开了一个游标,然后把结果放在数组里,然后组合.自己觉得答的比较离谱.
后来面试管也说我想的不对,没跟我具体说怎么回事
不知道这道题到底是 考什么的??
正确的解法应该是什么??现在还没明白...

解决方案 »

  1.   

    Create Table TEST
    (Name Varchar(10))
    Insert TEST Select 'a'
    Union All Select 'b'
    Union All Select 'c'
    Union All Select 'd'
    GO
    Select 
    A.Name As NameA,
    B.Name As NameB
    From TEST A
    Inner Join TEST B
    On A.name<>B.Name
    Order By NameA,NameB
    Go
    Drop Table TEST
    --Result
    /*
    NameA NameB
    a b
    a c
    a d
    b a
    b c
    b d
    c a
    c b
    c d
    d a
    d b
    d c
    */
      

  2.   

    Declare @t Table(Names Varchar(10))
    Insert @t Select 'A'
    Union all Select 'B'
    Union all Select 'C'
    Union all Select 'D'
    ---
    Select * From @t A Cross Join @t B
      

  3.   

    create table tb(col varchar(10))
    insert into tb
    select 'a'
    union all
    select 'b'
    union all
    select 'c'
    union all
    select 'd'select * from tb a full join tb b on a.col<>b.col