你的字段看不太明白,最好字段要横着排列
a2,b1,c2,d,....
是同一条记录里的?

解决方案 »

  1.   

    seelct case when a1=1 then a2 when b1=1 then b2 when c1=1 then c2 end as X2,d,e,f,g,... from tablename
      

  2.   

    A1 BITDECLARE @SQL VARCHAR(1000)
    SET @SQL=''
    SELECT @SQL=
    CASE WHEN A1=1 THEN 'A2,D,E,F,G...'
         WHEN B1=1 THEN 'B2,D,E,F,G... '
         WHEN C1=1 THEN 'C2,D,E,F,G...'
    END
    FROM TABLE1
    EXEC('SELECT '+@SQL+' FROM TABLE1')
      

  3.   

    伙计们,很抱歉。是我说清楚。
    如果A1,B1,C1中有几个为真,就生成几条记录。
    一条原始记录,如果三个为真,就会生成三条记录:
    A2,D..
    B2,D..
    C2,D..
      

  4.   

    SELECT A2 AS X,D... FROM TABLE1 WHERE A1=1
    UNION ALL
    SELECT B2 AS X,D... FROM TABLE1 WHERE B1=1
    UNION ALL
    SELECT C2 AS X,D... FROM TABLE1 WHERE C1=1