现有三表如下:
A:id,type
B:typeID,Desc
C:typeID,Desc
A.type为B,C的主键
要求从A中关联表B、C,根据表A的type值不同来查询不同的Desc(例如当type为B时取B.Desc,当A.type为C时取C.Desc),不用存储过程,此SQL语句应该怎么写????
在线等。多谢各位大侠拔刀相助!

解决方案 »

  1.   

    这样?你的A中的type字段只有A,B两个数值?
    select case [type] 
    when 'B' then B.[Desc] 
    when 'C' then C.[Desc]
    end as [DESC]
    from A,B,C
      

  2.   

    --trycreate table A(id int, type varchar(10))
    insert A select 1, 'B'
    insert A select 2, 'C'create table B(typeID varchar(10), [Desc] varchar(10))
    insert B select 'B', 'BB'
    insert B select 'B', 'BBB'create table C(typeID varchar(10), [Desc] varchar(10))
    insert C select 'C', 'CC'
    insert C select 'C', 'CCC'select A.*, [desc]=ISNULL(B.[Desc], C.[Desc]) from A
    left join B on A.type=B.typeID
    left join C on A.type=C.typeID--result
    id          type       desc       
    ----------- ---------- ---------- 
    1           B          BB
    1           B          BBB
    2           C          CC
    2           C          CCC(4 row(s) affected)