我编写了一个sql查询,它从用户那里获取输入(通过应用程序获取客户id)并返回记录,但是如果id为零,它将显示“invalid id”。当我设置id(set@cid=#####)时,我编写的查询确实正确地显示了数据,但不确定这是否是正确的方法。另外,我如何限制用户输入最少三位数字。下面是查询
USE WideWorldImporters
GO
DECLARE @CID int;
SET @CID = @CID
IF @CID > 0
BEGIN
SELECT CustomerID, sum(TransactionAmount) as TotalAmount
FROM Sales.CustomerTransactions
Where CustomerID = @CID
Group by customerID
RETURN
END
ELSE
Begin
PRINT 'Invalid ID'
END;
1条答案
按热度按时间kqhtkvqz1#
基于你现在的代码。我假设customerid实际上是一个int,这意味着数字前面多余的0不存在(i、 e.0011不是实际的id。由于列是数字,因此将存储为11)。
记住这一点,您可以将当前代码写入这样一个过程中,在您描述的情况下(null,最少3位,不小于0),该过程不会执行select。
sql server中的执行将按照
这是因为只有一个参数,所以您不必标识它。或者,调用过程并显式指定参数值的方法是。