要插入同一表的SQL IF语句

问题描述 投票:2回答:4

我需要查询存储在两个不同SQL模式中的数据集,具体取决于我们如何接收数据。我已经创建了两个查询来查看数据集1和数据集2,并将数据格式化为两个单独的临时表(格式相同)。

我现在正在尝试执行第二步,即确定已填充哪个临时表,然后将该数据放入新的临时表中,以便继续执行步骤3。

为此,我正在尝试创建一个IF语句来计算我们接收到的数据集,但似乎无法使查询正常工作(即使我已经看到了其他人的类似查询的解决方案)。

这是我的代码:

IF object_id('tempdb..#Final_Prem') IS NOT NULL 
BEGIN 
    DROP TABLE #Final_Prem 
END

DECLARE @Command varchar(500)

DECLARE @DS1 AS FLOAT
DECLARE @DS2 AS FLOAT

SET @DS1 = (SELECT SUM(PREM) FROM #Dataset1 )
SET @DS2 = (SELECT SUM(PREM) FROM #Dataset2 )

IF (@DS1 IS NULL OR @DS1 = 0)
BEGIN
    SET @Command = 'SELECT * INTO #Final_Prem FROM #Dataset2'
END ELSE BEGIN
    SET @Command = 'SELECT * INTO #Final_Prem FROM #Dataset1'
END

EXECUTE (@Command)

SELECT * FROM #Final_Prem

我一直收到的错误是>

消息208,级别16,状态0,第18行无效的对象名称'#Final_Prem'

任何帮助将不胜感激,谢谢

我需要查询存储在两个不同SQL模式中的数据集,具体取决于我们如何接收数据。我创建了两个查询以查看数据集1和数据集2,它们的格式为...

sql sql-server
4个回答
1
投票

您不能在动态查询中使用单哈希表。运行动态查询的会话与外部查询不同,因此无法访问它。


0
投票

查询作为一个整体


0
投票

您遇到范围问题。


0
投票

您也可以将select语句也放置在动态SQL中,如下所示:


0
投票

您也可以将select语句也放置在动态SQL中,如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.