首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 合成一条查询语句解决方案

2013-01-27 
sql 合成一条查询语句表Aidid2111222表Bidid2111333表Cid2text111aaa22bbb33ccc查询 :给出 id 值 是 3先从

sql 合成一条查询语句
表A

   id    id2
    1    11
    2    22

表B 

    id   id2
     1   11
     3   33


表C

    id2  text1
     11  aaa
     22  bbb
     33  ccc


查询 :给出 id 值 是 3

      先从 A 表 查询 id =3 的 id2 的值  如果 A表里没有 从 B表里查询
       
      查到后 从 C表 查询 text1 的值 

1:      select id2 from A where id = 3 ( 得到 id2 值 如果没有 查询 B 表)

2:       select id2 from B where id = 3 (得到 id2 值)

3:       select text1 from C where id2 = 33


上面几步写成一条if else 查询语句怎么写 ?? 
    
    

[解决办法]
declare @id int
if (select id2 from a where id=3) is null
being
    select @id=id2 from B where id = 3
end
else 
begin
    select @id=id2 from a where id=3
end

select text1 from C where id2 = @id

[解决办法]

declare @id INT 
set id='3'

if exists(select id2 from A where id = @id)
     begin 
          select text1 from C where id2 =(select id2 from A where id = @id)
     end

else 
     begin
           select text1 from C where id2 =(select id2 from B where id = @id)
     end

[解决办法]
Select a.id2,b.id2 From a FULL join b on a.id = b.id  Where b.id =3 or a.id =3


热点排行