微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何执行IF ELSE THEN T-SQL?

如何解决如何执行IF ELSE THEN T-SQL?

是否可以在 sql Server 中执行 IF ELSE THEN ?

例如我想执行 IF 我的查询结果是 NOT NULL (我的行存在)。它将继续THEN声明

enter image description here

ELSE 如果我的查询结果是 NULL(我的行不存在),它将继续执行另一个 THEN 语句

enter image description here

对于 T-sql 示例,这只是一个虚拟的 sql 脚本

IF (SELECT * FROM TABLE_A) IS NOTNULL THEN
(INSERT INTO TABLE_B)
ELSE
(DIDN'T PERFORM ANY QUERY)

谢谢

解决方法

您可以在 SELECTWHERE 子句中使用 INSERT 语句,如下所示:

INSERT INTO TABLE_B(...)
    SELECT ...
        FROM ...
        WHERE EXISTS(SELECT * FROM TABLE_A);

然后测试是否使用 IF @@ROWCOUNT > 0 THEN 插入了任何内容。

,

您可以检查表是否返回任何行,然后执行 SELECT INTO 操作

IF EXISTS (SELECT 1 FROM TABLE_A)
BEGIN 
    SELECT * INTO TABLE_B FROM TABLE_A
END;
,

假设您只想将 A 中的特定行插入到 B 中,那么您可以使用:

INSERT INTO TABLE_B ( . . . )   -- list the columns here
    SELECT . . .
    FROM TABLE_A;

如果没有行,则不会插入任何内容。就是这么简单。

实际上,它比那更简单。使用 IF 会在您的代码中引入竞争条件。 TABLE_A 可能会在 IFINSERT 的执行之间发生变化,因此代码不是线程安全的。这段代码没有这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。