-- COL1,COL2,COL3SELECT 
    COL1,
    CASE 
        WHEN COL2='A' THEN SELECT 名称 FROM A WHERE ID=C.COL3
        WHEN COL2='B' THEN SELECT 名称 FROM B WHERE ID=C.COL3
    END AS 名称
FROM C

解决方案 »

  1.   

    select case C.字段2 when 'A' then A.名称 when 'B' then B.名称
    from C left join A on C.字段3 = A.ID
    left join B on C.字段3 = B.ID
      

  2.   

    select (case C.字段2 when 'A' then A.名称 when 'B' then B.名称 end) as 名称
    from C left join A on C.字段3 = A.ID
    left join B on C.字段3 = B.ID
      

  3.   

    楼上的要加点条件吧,如果A,B的ID都是自动编号就有多余的了吧select (case C.字段2 when 'A' then A.名称 when 'B' then B.名称 end) as 名称
    from C left join A on C.字段3 = A.ID AND C.字段2=‘A’
    left join B on C.字段3 = B.ID AND C.字段2=‘B’
      

  4.   

    为什么必须是left join?
    inner join不行吗?