0

我想创建一个返回客户列表的 SQL 语句,例如:

SELECT Id, FirstName, LastName FROM Customer

显然,这部分很容易。

现在我想创建一个变量列,例如 HasOrders。我希望这是一个基于客户在订单表中是否有一个或多个订单的动态生成的布尔列。出于此问题的目的,假设订单是否打开无关紧要,只是该客户 ID 是否存在任何订单。

我希望 SELECT 语句返回所有客户,而不仅仅是带订单的客户。我需要根据客户是否有订单来做进一步的逻辑。

我不确定这是否可以通过 IF..ELSE、CASE 或嵌套 SELECT 来实现?

4

1 回答 1

8
SELECT  a.ID, a.FirstName, a.Lastname,
        CASE WHEN COUNT(b.CustID) > 0 THEN 'YES' ELSE 'NO' END AS HasOrders
FROM    Customer a
        LEFT JOIN Orders b
            ON a.ID = b.CustID        -- <<== the linking column on both tables
GROUP   BY a.ID, a.FirstName, a.Lastname
于 2013-02-19T03:28:30.090 回答