Заменить null на известное значение с тем же идентификатором - PullRequest
2 голосов
/ 02 июня 2011

Как я могу сделать это оптимальным образом?

ТАБЛИЦА

ID FLAG VALUE
----------------------------
1   Y   52
1   N   NULL
2   Y   51
3   N   54

ВЫХОД

ID FLAG VALUE
----------------------------
1   Y   52
1   N   52
2   Y   51
3   N   54

Ответы [ 2 ]

3 голосов
/ 02 июня 2011
UPDATE 
  theTable
SET 
  value = (SELECT MAX(value) FROM theTable i WHERE i.id = theTable.id)
WHERE
  value IS NULL
1 голос
/ 02 июня 2011

вы можете сделать это двумя способами

SELECT Id,
       Flag, 
       MAX(Value) OVER(PARTITION BY Id) CValue
FROM   Table_1

или

select X.Id, X.Flag,
case when ISNULL(X.Value,0) = 0 then 
(select MAX(A.Value) from Table_1 A where A.Id = X.Id)
 else X.Value end
from Table_1 X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...