#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 ;
Комментариев нет:
Отправить комментарий