Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Update строки по порядковому номеру MSQL 2008 R2  [new]
r18romik
Member

Откуда:
Сообщений: 169
В БД несколько одинаковых строк. Нужно сделать update по одной из строки.
Подскажите пж как построить запрос.

Как вывести я разобрался, а вот сделать update такой структуры не получается.

SELECT *
FROM
(SELECT row_number() over(order by (select 1)) as aaa, *
FROM dbo.F_KPI_VALUES t) q
WHERE KPI_CODE = '000000591'
AND KPIV_ID = '6636'
AND aaa = '39443'
29 май 14, 08:51    [16089045]     Ответить | Цитировать Сообщить модератору
 Re: Update строки по порядковому номеру MSQL 2008 R2  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
r18romik,

в SQL Server нет "порядковых номеров строк", но если вас такой SELECT устраивает, то можно так:
WITH CTE AS
(
SELECT row_number() over(order by (select 1)) as aaa, *
FROM dbo.F_KPI_VALUES t
WHERE KPI_CODE = '000000591'
AND KPIV_ID = '6636'
AND aaa = '39443'
)
UPDATE CTE
SET ...
WHERE aaa=1
29 май 14, 09:06    [16089078]     Ответить | Цитировать Сообщить модератору
 Re: Update строки по порядковому номеру MSQL 2008 R2  [new]
r18romik
Member

Откуда:
Сообщений: 169
Спасибо большое. Получилось:)
29 май 14, 09:19    [16089103]     Ответить | Цитировать Сообщить модератору
 Re: Update строки по порядковому номеру MSQL 2008 R2  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Пожалуйста.
Надеюсь вы отдаете себе отчет в том, что обновляете одну случайную запись из нескольких, потому что трудно представить ситуацию, когда это нужно.
29 май 14, 09:22    [16089118]     Ответить | Цитировать Сообщить модератору
 Re: Update строки по порядковому номеру MSQL 2008 R2  [new]
Crimean
Member

Откуда:
Сообщений: 13147
курсоры тут помогут - можно в курсоре "текущую" запись обновить )
а так - да - в таблице таки нужен пк
29 май 14, 09:25    [16089127]     Ответить | Цитировать Сообщить модератору
 Re: Update строки по порядковому номеру MSQL 2008 R2  [new]
Glory
Member

Откуда:
Сообщений: 104751
UPDATE TOP (1) dbo.F_KPI_VALUES  SET ...
WHERE KPI_CODE = '000000591'
AND KPIV_ID = '6636'
AND aaa = '39443'
29 май 14, 09:26    [16089129]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить