Страницы

Поиск по вопросам

воскресенье, 15 декабря 2019 г.

Можно ли присвоить переменной результат запроса?SQL,TRANSACT-SQL

#sql_server #sql


Делаю запрос на получение int значения.Можно ли присвоить переменной резултат этого
запроса?
declare @enddate int;
SET @enddate = SELECT dbo.Date_Dim.ID FROM dbo.Date_Dim WHERE dbo.Date_Dim.DateOper
= '2013-06-27';

Такая конструкция не работает.Это вообще возможно?    


Ответы

Ответ 1



Обычно это делается так: SELECT @enddate = dbo.Date_Dim.ID FROM dbo.Date_Dim WHERE dbo.Date_Dim.DateOper = '2013-06-27'); При этом одним запросом можно присвоить значения нескольким переменным: select @i1 = i1, @i2 = i2, ... from ...

Ответ 2



Запрос нужно обернуть в скобки. То есть DECLARE @enddate INT; SET @enddate = (SELECT dbo.Date_Dim.ID FROM dbo.Date_Dim WHERE dbo.Date_Dim.DateOper = '2013-06-27'); ну и позаботиться о том, чтобы он возвращал только одно значение, если это не так

Ответ 3



в mysql можно не объявлять переменную, а сразу воспользоваться ей set @m = (SELECT MIN(id) FROM db.table WHERE status=0); UPDATE db.table SET status=1 WHERE id= @m; select * from db.table ;

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

Отправить комментарий