2014-01-16 40 views
0
UPDATE Table_Main SET filtered = CASE 
WHEN (subTable.name='MI' 
AND subTable.id= Table_Main."CTYPE") 
THEN false ELSE true END 
from subTable 

查询与子表与CASE SQL更新查询时

+0

我想你必须提供where子句做实际的加盟 – user1455836

+0

由于问题出在哪里:) – Lyudvig

+0

你使用的是什么关系数据库管理系统与? – TomT

回答

0
UPDATE Table_Main SET filtered = CASE WHEN (subTable.name='CS') 
THEN false ELSE true END 
FROM subTable 
WHERE subTable.id = mainTable."CTYPE" 
0

的第一行只能听起来像是MERGE语句(因为SQL Server 2008中,我认为有售)工作!

MERGE Table_Main AS Target 
USING subTable as Source 
ON (Source.name = 'MI' AND Source.id = Target."CTYPE") 
WHEN MATCHED 
    THEN UPDATE SET T.filtered = false 
WHEN NOT MATCHED BY SOURCE 
    THEN UPDATE SET T.filtered = true 
OUTPUT $action, Inserted.*, Deleted.*; 
+0

问题已经解决 – Lyudvig

+0

UPDATE Table_Main SET过滤= CASE WHEN(subTable.name = 'CS') THEN ELSE假真END FROM子表 WHERE subTable.id = mainTable。 “CTYPE” – Lyudvig