ตัวอย่างที่จะแสดงเพียงใส่ในกรณี:
ค่าในตาราง Inline
CREATE FUNCTION MyNS.GetUnshippedOrders()
RETURNS TABLE
AS
RETURN SELECT a.SaleId, a.CustomerID, b.Qty
FROM Sales.Sales a INNER JOIN Sales.SaleDetail b
ON a.SaleId = b.SaleId
INNER JOIN Production.Product c ON b.ProductID = c.ProductID
WHERE a.ShipDate IS NULL
GO
ตารางคำสั่งหลายค่า
CREATE FUNCTION MyNS.GetLastShipped(@CustomerID INT)
RETURNS @CustomerOrder TABLE
(SaleOrderID INT NOT NULL,
CustomerID INT NOT NULL,
OrderDate DATETIME NOT NULL,
OrderQty INT NOT NULL)
AS
BEGIN
DECLARE @MaxDate DATETIME
SELECT @MaxDate = MAX(OrderDate)
FROM Sales.SalesOrderHeader
WHERE CustomerID = @CustomerID
INSERT @CustomerOrder
SELECT a.SalesOrderID, a.CustomerID, a.OrderDate, b.OrderQty
FROM Sales.SalesOrderHeader a INNER JOIN Sales.SalesOrderHeader b
ON a.SalesOrderID = b.SalesOrderID
INNER JOIN Production.Product c ON b.ProductID = c.ProductID
WHERE a.OrderDate = @MaxDate
AND a.CustomerID = @CustomerID
RETURN
END
GO
มีความได้เปรียบในการใช้หนึ่งประเภท (คำสั่งในบรรทัดหรือหลายคำสั่ง) กับอีกประเภทหนึ่งหรือไม่? มีสถานการณ์บางอย่างเมื่อสิ่งหนึ่งดีกว่าอีกสถานการณ์หนึ่งหรือมีความแตกต่างของการสร้างประโยคอย่างแท้จริงหรือไม่? ฉันรู้ว่าแบบสอบถามสองตัวอย่างกำลังทำสิ่งที่แตกต่างกัน แต่มีเหตุผลที่ฉันจะเขียนพวกเขาด้วยวิธีนี้หรือไม่?
การอ่านเกี่ยวกับพวกเขาและข้อดี / ความแตกต่างนั้นยังไม่ได้รับการอธิบาย