Как использовать метки GOTO?

#sql-server

#sql-сервер

Вопрос:

Все ярлыки выполняются. Как мне решить эту проблему?

Печатаются как «Да», так и «нет».

 declare @x as varchar(max)
set @x =5
if (@x>4)
begin 
goto t1
end
else
begin
goto t2
end

t1:
print('yes')

t2:
print ('no') 
  

Я хочу только Yes в качестве вывода.

Комментарии:

1. MySQL или SQL Server? Это совершенно разные продукты. Но основная проблема в том, что вы никуда не выходите. Код продолжает выполняться, пока не дойдет до конца, поэтому печатаются оба. Метки не действуют как барьеры

2. Использование GOTO, если в этом нет необходимости, считается плохой практикой. Вы можете создавать временные процедуры или делать что-то в if.

Ответ №1:

Вы должны перейти к концу после печати.

 declare @x as varchar(max)
set @x =5

if (@x>4)
begin 
  goto t1
end
else
begin
  goto t2
end

t1:
print('yes')
goto tend

t2:
print ('no') 
goto tend

tend: