вернуть правда/ложь в процедуре sql
Я хочу вернуть значение true/false из процедуры. Чтоб базироваться на проверке.
===> если Вася 255, то он Админ = правда.
я нашла, что можно вернуть значение в бите, постаралсь применить в своем решении, используя тесты условий (when/case)
вот моя процедура Microsoft SQL Server Management Studio :
CREATE PROCEDURE GetBooleanAdminStatut
@SomeProperty int, @bit BIT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT MyTable.SomeProperty2
case MyTable.SomeProperty2
when 255 then set @bit = 1
else set @bit = 0
end
from MyTable
where SomeProperty = @SomeProperty
END
GO
но я получаю ошибку синтаксиса, где я ошибаюсь ?
Ответы (1 шт):
Автор решения: Dev18
→ Ссылка
условие выборки заключила в скобки, и убрала возврат при декларации, а просто как показано тут cast-ом вернула значение, работает ок✅
CREATE PROCEDURE GetBooleanAdminStatut
@SomeProperty int
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT CASE WHEN EXISTS
(select MyTable.SomeProperty2 from MyTable
where SomeProperty = @SomeProperty and MyTable.SomeProperty2 = 255)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END as AdminState
END
GO

