我想获取返回前一个select语句的值(类似于@@IDENTITY
函数)
代码:
IF EXISTS (SELECT MyCriticalValue
FROM Units u
JOIN pUnit pu
ON pu.UnitID = u.UnitID
WHERE u.ChildUnitID = ( SELECT ps.UnitID
FROM psUnit ps
WHERE ps.Code = @CurrentCode)
AND pu.Type = 117
AND u.TypeID = 1 )
BEGIN
SET @CriticalValue = @@identity
END
我知道@@IDENTITY
不起作用,因为这仅适用于插入。是否有类似的功能来实现我想要的功能(即将select#34; MyCriticalValue"从select语句转换为变量@CriticalValue
而不输入整个SELECT语句两次)。
修改
澄清:当我在我的SQL脚本中已经设置@CriticalValue
时,如果select语句返回任何内容,我应该只覆盖它,所以不应该在任何其他情况下覆盖它。
答案 0 :(得分:4)
SELECT @CriticalValue = ISNULL(MyCriticalValue, @CriticalValue)
FROM Units u
JOIN pUnit pu
ON pu.UnitID = u.UnitID
WHERE u.ChildUnitID = (
SELECT ps.UnitID
FROM psUnit ps
WHERE ps.Code = @CurrentCode
)
AND pu.Type = 117
AND u.TypeID = 1;
IF @CriticalValue IS NOT NULL
...
我假设您的查询返回一个值。