在Foundry Contour中:若Partner Cost Center存在于Cost Center列则删除该行
解决方案
直接删除符合条件的行
如果你想直接删除满足条件的记录,可使用 EXISTS 子查询实现跨行匹配:
DELETE FROM your_table WHERE EXISTS ( SELECT 1 FROM your_table AS t2 WHERE t2.`Cost Center` = your_table.`Partner Cost Center` );
先标记再处理(保留原表)
如果不想直接删除,而是先标记出需要删除的行,可在 CASE WHEN 中嵌套 EXISTS 子查询:
SELECT *, CASE WHEN EXISTS ( SELECT 1 FROM your_table AS t2 WHERE t2.`Cost Center` = t1.`Partner Cost Center` ) THEN 'cancel' ELSE 'keep' END AS status FROM your_table AS t1;
关键说明
- 原
CASE WHEN仅对比了当前行的两列值,而EXISTS子查询会遍历整个表的Cost Center列,检查是否存在与当前行Partner Cost Center匹配的值,以此实现跨行判断。 - 因列名包含空格,需用反引号(MySQL)或方括号(SQL Server)包裹列名,避免语法错误。
内容的提问来源于stack exchange,提问作者user23127397
相关产品推荐
相关产品推荐

