2010-09-02 74 views
0

下面的SQL代码片段是父SQL的子选择。SQL:如果条件结果不存在?

有没有办法说:“如果客户不存在,我想运行不同的SQL”?

select orderdate, 
    (select contactname from customers where customerID = 'ALFKI' or select 'No Customer') as contactname 

from orders 

我知道这可以解决一个联接,但主要感兴趣的可能性?

+0

请发表你想,如果客户不存在要运行什么。 – froadie 2010-09-02 19:42:16

+0

请更新您的问题,以包含您的意思是“这可以在父SQL中作为子选择内联地完成吗?” – 2010-09-02 19:53:15

回答

0

,你想在这里做的东西叫做LEFT JOIN与ISNULL:

select OrderDate, isnull(c.FullName, 'No customer') CustomerName 
from Orders o 
left join Customers c on o.CustomerId = c.CustomerId 
1

例如

IF NOT EXISTS (select * from customers where customerID = 'ALFKI') 
BEGIN 
    SELECT '1' 
END 
ELSE 
BEGIN 
    SELECT '2' 
END 
+0

这可以作为子查询在父SQL中内联完成吗? – Rod 2010-09-02 19:45:00

+0

发布更多详情 – SQLMenace 2010-09-02 19:47:09

1

请忽略这个问题。我本来应该很疲惫,因为这个问题听起来让我感到困惑。

原来我在错误的地方,当答案在别处。就像那样,答案就是用优先括号解决的。对困惑感到抱歉。

杆。