我有一个明显简单的问题,但找不到好的解决方案,所以我会感谢社区的帮助。
假设我的表有三列:DealID,TransID和Number。让我们说我有4行,DealID的值在所有4行中相同,TransID在每一行中具有不同的值(并且数据按此列递增排序)并且Number在第一行中具有一些值而在所有其他行中具有NULL
我的简单问题是:对于精确的Trans_Id,如何在sproc中确定所有大于当前的Trans_Id值是Number NULL的所有值?即我想知道对于大于当前Trans_Id值的任何其他Trans_Id,是否存在与NULL不同的Number值。
提前TnX!维迪奇
答案 0 :(得分:1)
这是怎么回事:
SELECT * FROM mytable
WHERE DealID = (SELECT DealID FROM mytable WHERE TransID = @transID)
AND TransID > @transID
AND Number IS NOT NULL
答案 1 :(得分:1)
尝试这样的事情(我假设dealID
是参数之一):
-- return 1 if there not null numbers for given @dealID and @tranID
CREATE PROC checkNullNumbers (
@dealID INT,
@transID INT
)
AS
BEGIN
DECLARE
@result INT
SELECT TOP 1 1
FROM
mytable
WHERE
dealID = @dealID
AND transID > @transID
AND number IS NOT NULL
SET @result = @@ROWCOUNT
SELECT @result AS result
END