繁体   English   中英

SQL Server:如果存在,则将x插入表A,否则将y插入表A

[英]SQL server: IF EXISTS insert x into table A, else insert y into table A

我收到“ #DateRange已在数据库中”的错误。 我想要的是,如果#daterange2中有数据,则进行联合,否则只能从#DateRange1中进行选择。 但是目标表都在#DateRange表中。 这是我的代码:

IF exists  (SELECT * FROM #DateRange2)
    SELECT * INTO #DateRange
    FROM
    (SELECT * FROM
        #DateRange1
    UNION
    SELECT * FROM
        #DateRange2
    ) a
ELSE
    SELECT * INTO #DateRange
    FROM
        #DateRange1

嗯,为什么还要打扰条件逻辑呢? 做就是了:

SELECT *
INTO #DateRange
FROM (SELECT *
      FROM #DateRange1
      UNION
      SELECT *
      FROM #DateRange2
     ) a;

如果第二个表中没有行,则不会插入任何行。

另外,检查您是否真的需要UNION 通常,首选UNION ALL -除非您确实要承担删除重复项的开销。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM