如何在orderID上添加默认约束

时间:2016-01-26 16:20:36

标签: sql reporting-services constraints default

SELECT 
    O.*,
    C.CustName,
    OD.[PartNo], OD.[PartDesc], 
    OD.[Quantity], OD.[Price], OD.[Total],
    OD.[Price] * O.[ExchangeRateToGBP] AS PriceGBP,
    OD.[Total] * O.[ExchangeRateToGBP] AS TotalGBP
FROM 
    [dbo].[tblOrder] O
INNER JOIN 
    [dbo].[tblOrderDetails] OD ON O.OrderNo = OD.OrderNo
INNER JOIN  
    [dbo].[tblCustomer] C ON O.CustNo = C.CustNo
WHERE 
    (OrderId = @OrderId ) 

有人可以告诉我该怎么做才能让我获得订单ID的默认值吗?目前,用户必须输入OrderId才能查看他们想要的部分(这也是我想要的)。但是,如果他们没有OrderId,那么我怎样才能获得它以便他们只收到所有订单?

2 个答案:

答案 0 :(得分:1)

您希望为变量赋予默认值,该值将在未提供任何值时使用:

DECLARE @OrderId VARCHAR(20) = NULL;

然后更改您的WHERE标准:

WHERE (@OrderId IS NULL OR OrderId = @OrderId)

答案 1 :(得分:0)

使用:

 ...
 WHERE OrderId = @OrderId OR @OrderId IS NULL

当用户未提供@OrderId值时,第二部分将返回true并检索所有记录。