这里是MyTbl1
:
id (integer pk ai)
name (text char 25)
phone (int)
MyTbl2
:
v1 (text char25)
v2 (text char 25)
我想要提出请求,如:
select if exists id=1 in MyTbl1 if id=1 exists then select v1 from Mytbl2 if not exists return 0.
我试试这个:
select case when exists(select id from MyTbl1 where id=1) then (select v1 from MyTbl2) else 0 end;
它不起作用(
答案 0 :(得分:0)
使用where exists
如果在Mytbl1
中存在id =`的行,你也会从MyTbl2获取所有行select v1 from MyTbl2 t2
where exists
( select 1 from MyTbl1 t1
where t2.id =1
)
答案 1 :(得分:0)
此查询将带回两个值:v1和id。 但是,如果它是<> 1,则id将为null(因为它不会通过join子句)
select v1 , id
from MyTbl2 t2
left join MyTbl1 t1 on id =1
您可以检查id是否为null,如果是,则可以假设v1为零。这可以按如下方式完成:
select case when id is null the 0 else v1 end
from MyTbl2 t2
left join MyTbl1 t1 on id =1