表  
   ID    P    V
   1     1    b
   2     1    c
   3     2    d
   4     3    x
   5     3    y
   6     3    zP=1 对应 V有b,c
P=2 对应 V有d
P=3 对应 V有x,y,z根据P的不同对应 V的值组合起来
想要的结果为   列1  列2  列3
               b    d      x
               b    d      y
               b    d      z
               c    d      x
               c    d      y
               c    d      z

解决方案 »

  1.   

    是不是只有这三个,如果是:
    select m.v , n.v , t.v
    from tb m , tb n , tb v
    where m.p = 1 and n.p = 2 and v.p = 3
      

  2.   

    create table tb(ID int,P int,V varchar(10))
    insert into tb values(1, 1 ,'b')
    insert into tb values(2, 1 ,'c')
    insert into tb values(3, 2 ,'d')
    insert into tb values(4, 3 ,'x')
    insert into tb values(5, 3 ,'y')
    insert into tb values(6, 3 ,'z')
    goselect m.v , n.v , t.v
    from tb m , tb n , tb t
    where m.p = 1 and n.p = 2 and t.p = 3drop table tb/*
    v          v          v          
    ---------- ---------- ---------- 
    b          d          x
    b          d          y
    b          d          z
    c          d          x
    c          d          y
    c          d          z(所影响的行数为 6 行)
    */
      

  3.   

    这里写错一个表别名.select m.v , n.v , t.v
    from tb m , tb n , tb t
    where m.p = 1 and n.p = 2 and t.p = 3
      

  4.   


    --> 数据库版本:
    --> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
    --> 测试数据:[TB]
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[TB]') 
    AND type in (N'U')) 
    DROP TABLE [TB]
    GO---->建表
    create table [TB]([ID] int,[P] int,[V] varchar(1))
    insert [TB]
    select 1,1,'b' union all
    select 2,1,'c' union all
    select 3,2,'d' union all
    select 4,3,'x' union all
    select 5,3,'y' union all
    select 6,3,'z'
    GO--> 查询结果select * from (
    (SELECT V FROM [TB] where P='1')x
    cross join 
    (SELECT V  FROM [TB] where P='2')y )
    cross join
    (SELECT V  FROM [TB] where P='3')z--> 删除表格
    --DROP TABLE [TB]
      

  5.   

    表   
      ID D  P V
      1  1  1 b
      2  1  1 c
      3  1  2 d
      4  1  3 x
      5  1  3 y
      6  1  3 zP=1 对应 V有b,c
    P=2 对应 V有d
    P=3 对应 V有x,y,z根据P的不同对应 V的值组合起来
    想要的结果为 列1 列2 列3
      b d x
      b d y
      b d z
      c d x
      c d y
      c d z还有一个D 用来固定P的