Re: update from
От: Gt_  
Дата: 30.01.19 18:13
Оценка: 2 (1)
K>или есть, но просто какой-то другой синтаксис?

да, другой. типа такой

update (select a.id, a.fld, b.fld as new_value from a, b where a.id = b.id)
set fld = new_value ;
update from
От: Kaifa Россия  
Дата: 30.01.19 16:41
Оценка:
в оракле нельзя так? фишка чисто mssql?


UPDATE sr  
SET sr.Name += ' - tool malfunction'  
FROM Production.ScrapReason AS sr  
JOIN Production.WorkOrder AS wo   
     ON sr.ScrapReasonID = wo.ScrapReasonID  
     AND wo.ScrappedQty > 300;


или есть, но просто какой-то другой синтаксис? наивный считал что в стандарте sql такое заложено...
в условиях ограниченного времени не нашел ничего. сделал через курсор....
Отредактировано 30.01.2019 16:42 Kaifa . Предыдущая версия .
Re: update from
От: wildwind Россия  
Дата: 30.01.19 17:17
Оценка:
Здравствуйте, Kaifa, Вы писали:

K>или есть, но просто какой-то другой синтаксис? наивный считал что в стандарте sql такое заложено...


Другой синтаксис, см. MERGE.

P.S. И += тоже нельзя.
Отредактировано 30.01.2019 17:18 wildwind . Предыдущая версия .
Re[2]: update from
От: Kaifa Россия  
Дата: 30.01.19 17:21
Оценка:
W>Другой синтаксис, см. MERGE.

мердж и в мссиквеле есть. кстати синтаксис аналогичный.... думал про него кстати... но уже потом.
Re: update from
От: IZM  
Дата: 30.01.19 20:43
Оценка:
по самому простому так?:
Update Production.ScrapReason sr
set sr.Name =sr.Name || ' — tool malfunction'
where exists (select null from Production.WorkOrder wo where wo.ScrapReasonID = sr.ScrapReasonID and Wo.ScrappedQty > 300)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.