使用来自左联接的结果更新sql表(sql server)
我需要有关SQL server查询的帮助。我试图根据左键将表与另一个外部源(表2)连接的结果来更新现有表(#Masterfile)。第6行基本上是一个表示表b中是否存在ID的标志。我是sql新手(几周前才开始学习),所以我的语法可能非常基本。我左键将#主文件与新的感兴趣表(表2)连接在一起,然后选择结果(并更新column6_标志) 但是,我得到了一个错误,将语句(,a.column6_flag=case,当x.column9不为NULL时,则为1,否则为0结束)确定为罪魁祸首。任何帮助都将不胜感激!!!我试图再次查看case when语法,但无法确定它产生错误的原因。当我注释掉查询的case部分时,它就工作了 再次感谢使用来自左联接的结果更新sql表(sql server),sql,sql-server,Sql,Sql Server,我需要有关SQL server查询的帮助。我试图根据左键将表与另一个外部源(表2)连接的结果来更新现有表(#Masterfile)。第6行基本上是一个表示表b中是否存在ID的标志。我是sql新手(几周前才开始学习),所以我的语法可能非常基本。我左键将#主文件与新的感兴趣表(表2)连接在一起,然后选择结果(并更新column6_标志) 但是,我得到了一个错误,将语句(,a.column6_flag=case,当x.column9不为NULL时,则为1,否则为0结束)确定为罪魁祸首。任何帮助都将不胜
--Insert into #MasterFile
select distinct
a.column1
, a.column2
, a.column3
, a.column4
, a.column5
, a.column6_flag = case when x.column9 is not NULL then 1 else 0 end
, a.column7
, x.column9
from
#Alldata a
left join
(select m.column9
from #Masterfile m
left join table2 n on m.id = n.id) x on a.id = x.id
您只需将箱子四处移动,如下所示:
select distinct
a.column1
, a.column2
, a.column3
, a.column4
, a.column5
, case when x.column9 is not NULL then 1 else 0 end AS column6_flag
, a.column7
, x.column9
from #Alldata a
left join
(
select
m.column9
from #Masterfile m
left join table2 n
on m.id=n.id
) x
on a.id=x.id
将
a.column6_标志
替换为仅column6_标志
column6_flag = case when x.column9 is not NULL then 1 else 0 end
试试这个
SELECT DISTINCT column1,
column2,
column3,
column4,
column5,
column6_flag = CASE
WHEN x.column9 IS NOT NULL THEN 1
ELSE 0
END,
column7,
x.column9
FROM #Alldata a
LEFT JOIN (SELECT m.id,
m.column9
FROM #Masterfile m
LEFT JOIN table2 n
ON m.id = n.id) x
ON a.id = x.id