如果满足我的条件,如何通过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语句。
答案 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';