【发布时间】:2019-12-18 11:38:16
【问题描述】:
如果字段“partita_iva”已在此表中,我需要插入并检查每一行,如果是,则字段“flag”必须为 1,否则必须为 0。我这样做了,但是为所有行设置 1,即使应该为 1 只为一行
INSERT INTO tab2(id, flag)
select newid,
CASE
WHEN EXISTS(SELECT * FROM tab1 WHERE partita_iva IN(SELECT partita_iva FROM tab2))
THEN 1
ELSE 0
END AS flag
from tab1
【问题讨论】:
-
样本数据和期望的结果会有所帮助。你的代码很不清楚。
-
您要检查什么,是否存在名为 partita_iva 的列或 partita_iva 上的某些值是否存在?请清楚地提出问题。
-
@SagarTimalsina 我想检查 partita_iva 上的值是否存在,如果已经存在一个值,我必须将该值的标志设置为 1,使用我提供的代码,所有行都有 1即使它应该是 1 只是一行
标签: sql sql-server exists