【发布时间】:2019-04-11 22:10:48
【问题描述】:
我正在处理 2 个不同的作业,我必须进行空值检查,但我不确定我是否正确编写了语法,因为我的导师还没有真正讨论过这个问题,但会为它做标记。
以下是我写的两个问题。任何帮助表示赞赏。
作业 1 问题:为未在线订购且未使用信用卡订购的订单创建销售订单编号列表。注意:0 为假,1 为位字段真。下面是我使用的语法,我在这里做空检查吗?
SELECT SalesOrderNumber
FROM Sales.SalesOrder_json
WHERE OnlineOrderFlag = 0 AND CreditCardID IS NULL
作业 2 问题:列出没有产品的供应商。下面是我使用的语法,我在这里做空检查吗?
SELECT
pv.Name AS Vendors,
COUNT(PP.ProductID) AS 'Products'
FROM
Purchasing.Vendor AS PV
LEFT JOIN
Purchasing.ProductVendor AS PPV ON PV.BusinessEntityID = PPV.BusinessEntityID
LEFT JOIN
Production.Product AS PP ON PP.ProductID = PPV.ProductID
GROUP BY
PV.Name
HAVING
COUNT(PP.ProductID) = 0;
【问题讨论】:
-
建议对一些样本数据使用db-fiddle 并测试我们的解决方案。
-
您有示例数据可以使用吗?作业 1 可能为真,但这取决于 CreditCard 列的外观。而对于作业 2,没有数据就无法判断
-
在这个特定问题中,标题告诉我们正在使用 2016 年标准 AdventureWorks 数据库,这是提出通用 SQL 问题的公认标准,因为我们都可以访问该数据库。 OP 正在询问
Have I checked for null,这是我们可以在不完全了解架构的情况下提供帮助的问题。
标签: sql sql-server sql-server-2016