вернуть правда/ложь в процедуре 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
→ Ссылка