我需要SQL服务器查询的帮助。我尝试更新现有表(#Masterfile),基于左表连接表与另一个外部源(表2)的结果。第6行基本上是一个标志,表明ID是否存在于表b中。我是sql的新手(刚刚开始学习几周),所以我的语法可能非常基础。我离开了加入#Masterfile的新兴趣表(表2),然后选择结果(并更新column6_flag)。
然而,我得到错误,识别语句(,a.column6_flag = case,当x.column9不为NULL然后1 else 0 end)作为罪魁祸首。任何帮助将非常感激!!!我尝试再次查看语法的情况,但无法确定它产生错误的原因。当我在查询的一部分时注释掉它的情况时,它可以工作。
再次感谢!
--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
答案 0 :(得分:1)
将a.column6_flag
替换为column6_flag
column6_flag = case when x.column9 is not NULL then 1 else 0 end
答案 1 :(得分:0)
试试这个......
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
答案 2 :(得分:-1)
你只需要移动案例就可以这样:
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