2014-04-11 3 views

ответ

1

Если предположить, что пустая строка фактически пустая строка, вы можете присоединиться к таблице для себя и использовать строковое значение для того же ключа.

UPDATE tt 
SET  [stbk#] = tt2.[stbk#] 
FROM dbo.TestTable tt 
JOIN dbo.TestTable tt2 
     ON tt.sttkt = tt2.sttkt 
      AND NULLIF(tt2.[stbk#], '') IS NOT NULL 
+0

Кто такой dbo.TestTable? мое имя базы данных #TempB – asfsdf

+0

У меня не было имени вашей таблицы, поэтому я создаю таблицу с именем dbo.TestTable с двумя столбцами: 'CREATE TABLE dbo.TestTable ([stbk #] VARCHAR (10), sttkt INT)' – Vinnie

+1

это прекрасно работает, большое вам спасибо – asfsdf

0

Попробуйте

update yourtable 
set stbk# = x.stbk# 
from (
select sttckt, stbk# 
where len(ltrim(rtrim(stbk3)))>0) x 
where len(ltrim(rtrim(yourtable.stbk3)))=0 
and yourtable.sttkt = x.sttkt 
+0

Я получил эту ошибку недопустимое имя столбца 'STBK #' и когда я дважды Clic на ошибку, SQL подчеркнул это, где LEN (LTRIM (RTRIM (STBK #)))> 0) х – asfsdf

+0

#, вероятно, зарезервированный символ. Если вы введете имя поля в скобки [], оно должно работать. – bsivel