Sql 如何填充下面的例子中的空白? 我必须用相同的描述填充相同的STTCKT下面的空白。我的桌子是临时的。

Sql 如何填充下面的例子中的空白? 我必须用相同的描述填充相同的STTCKT下面的空白。我的桌子是临时的。,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,试试这个 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 假设您的空行实际上是一个空字符串,您可以将表连接到它本身,并对同一个键使用字符串值 UPDATE tt SET [stb

试试这个

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

假设您的空行实际上是一个空字符串,您可以将表连接到它本身,并对同一个键使用字符串值

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

我得到了无效列名“stbk#”的错误,当我在错误上双击clic时,sql突出显示了这个错误,其中len(ltrim(rtrim(stbk#))>0)x#可能是一个保留字符。如果将字段名括在方括号[]中,它应该可以工作。谁是dbo.TestTable?我的数据库名是#TempBI没有您的表名,所以我创建了一个名为dbo.TestTable的表,它有两列:
create table dbo.TestTable([stbk#]VARCHAR(10),sttkt INT)