#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: