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 查询语句怎么写 ??
[最优解释]
Select a.id2,b.id2 From a FULL join b on a.id = b.id Where b.id =3 or a.id =3
[其他解释]
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 C.text1 FROM (
SELECT id=CASE WHEN A.Id IS NULL THEN B.id ELSE A.id end,id2=CASE WHEN a.ID IS NULL THEN B.ID2 else A.Id2 END FROM A full JOIN B ON A.Id=B.Id
)A JOIN C ON A.id2=C.Id2
WHERE id=3A