Как вернуть значение int через sql запрос, если мои условия соблюдены? - PullRequest
0 голосов
/ 13 марта 2019

Как я могу вернуть значение через 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 ]

1 голос
/ 13 марта 2019

Это то, что вы хотите?

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

Нет смысла заключать в транзакцию один SELECT.И использование return() не имеет смысла, если вы не находитесь в сохраненной функции (или, возможно, процедуре).

0 голосов
/ 13 марта 2019

То, что вы создали, называется Анонимный блок , что вам нужно, это либо выбор, предоставленный @ 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'; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...