如果满足我的条件,如何通过sql查询返回int值?

时间:2019-03-13 17:50:51

标签: sql sql-server

如果满足我的条件,如何通过sql查询返回值?

DECLARE @MyInt int;

BEGIN TRANSACTION;
    SET @MyInt = (SELECT COUNT(*) FROM Table1 WHERE key=5);
    if (@MyInt = 5)
    Begin
        RETURN 1;
    End 
    RETURN 0;
COMMIT;

这是我得到的错误:

错误:在这种情况下不能使用带有返回值的RETURN语句。

2 个答案:

答案 0 :(得分:1)

这是您想要的吗?

SELECT (CASE WHEN COUNT(*) = 5 THEN 1 ELSE 0 END)
FROM Table1
WHERE key = 5;

没有理由在事务中包装单个SELECT。除非您处于存储函数(或过程)中,否则使用return()是没有意义的。

答案 1 :(得分:0)

您创建的内容称为ControllerBase,您需要的是Anonymous block提供的Select,也可以使用代码定义@GordonLinoff's answer

CREATE FUNCTION dbo.SomeFunctionName (@Key Int)  
 RETURNS int  
 WITH EXECUTE AS CALLER  
BEGIN;
   SET @MyInt = (SELECT COUNT(*) FROM Table1 WHERE key=@Key);
   if (@MyInt = 5)
   Begin
       RETURN 1;
   End 
   RETURN 0;
END;
GO;

然后将其用作:

SELECT dbo.SomeFunctionName(5) AS 'someAlias';