Sql If-Else语句在填充时跳过值

Sql If-Else语句在填充时跳过值,sql,sql-server,Sql,Sql Server,我试图创建一个if-else脚本,在表的列中有特定值时跳过一条记录,并继续将记录插入另一个表中 如何创建脚本来执行此操作 IF EXISTS (Select * From Table A where X =1) BEGIN Do nothing END ELSE BEGIN INSERT INTO TABLE Y SELECT * FROM TABLE Z END 相反,请编写一条语句: INSERT INTO TABLE Y SELECT * FROM TABLE Z

我试图创建一个if-else脚本,在表的列中有特定值时跳过一条记录,并继续将记录插入另一个表中

如何创建脚本来执行此操作

IF EXISTS (Select * From Table A where X =1)
BEGIN
Do nothing
END
ELSE
BEGIN 
INSERT INTO TABLE Y
SELECT * FROM TABLE Z
END

相反,请编写一条语句:

INSERT INTO TABLE Y
    SELECT *
    FROM TABLE Z
    WHERE NOT EXISTS (Select 1 From Table A where X = 1);

根本不需要条件。

如果希望在进程中执行它,请以这种方式使用它

create procedure usp_insert 
as
BEGIN 
declare @rowcount int = (Select count(*) From TableA where X <>'1')
Begin
if @rowcount>=1 
INSERT INTO TABLE Y
SELECT * FROM TABLE Z
end
END

你的问题是什么?使用文本编辑器?真的不清楚你在挣扎什么。您的查询语法正确。如果不存在,请将脚本更改为。。。插入你不需要其他的陈述似乎你在这里有几个答案,这些答案回答了张贴的问题。但在评论中,你提出的问题似乎不是你想要解决的问题。您应该发布一些示例数据和所需的输出,因为这里根本不清楚您要做什么。这将是一个很好的起点@杰夫:你确定你的问题中有正确的表格吗?IF条件使用表A,与插入表无关:表Y和表Z。它们之间有什么联系?如何使其跳过一条记录并继续复制其他记录的值?我希望跳过记录的其余字段为空。@Jeff跳过一条记录并继续复制其他记录的值是什么意思?@Eric,正确,跳过并继续填充下一条记录,以此类推。使用EXISTS会更简单一些,性能通常也会更好。@SeanLange我同意你的观点,那么改为使用EXISTS会让这个答案和Gordon的答案几乎完全相同,但你把它放在一个过程中。@SeanLange我会让OP使用他喜欢的,我确信他看到的是这些注释,而不是在程序中粘贴相同的代码。因此,为了清楚起见,这些代码不是很有效,但它展示了OP没有要求的程序的基本格式;