SELECT case ( SELECT Count(*) FROM A2 WHERE ID = A1.ID) WHEN 1 THEN 'A' ELSE 'B' END) AS Name, (SELECT Count(*) FROM A2 WHERE ID = A1.ID) AS Code FROM A1

解决方案 »

  1.   

    SELECT (case ( SELECT Count(*) FROM A2 WHERE ID = A1.ID) WHEN 1 THEN 'A' ELSE 'B' END) AS Name, (SELECT Count(*) FROM A2 WHERE ID = A1.ID) AS Code FROM A1
      

  2.   

    楼上的方法我知道,不过我的表里有40多的字段,并且查询表做字段的有30多个,如果用上面的方法有点让SQL文太长了,没有别的好方法吗?
      

  3.   

    SELECT (CASE Code WHEN 1 THEN 'A' ELSE 'B' END) AS Name
           ,Code
    FROM  (
            SELECT ID
                   ,(SELECT Count(*) FROM A2 WHERE ID = A1.ID) 'Code'
            FROM A1
          )t 
      

  4.   

    select
        Name = (CASE t.Code WHEN 1 THEN 'A' ELSE 'B' END)
    from
        A1 
    inner join
        (SELECT Code=Count(*) FROM A2 group by ID) t
    on
        A1.ID = t.ID
      

  5.   

    select (CASE count(*) WHEN 1 THEN 'A' ELSE 'B' END) AS Name,count(*) as code
    from A1 a left join A2 b on a.id=b.id
    group by a.id
      

  6.   

    SELECT (CASE Code WHEN 1 THEN 'A' ELSE 'B' END) AS Name,Code
    FROM  (
            SELECT ID,(SELECT Count(*) FROM A2 WHERE ID = A1.ID) 'Code'        FROM A1
          ) t