标签: temp-tables

如何在 SQL Server 中的 ELSE IF 语句中创建相同的临时表?

我使用else if如下语句在不同条件下将数据存储到“#tempQuantity”临时表中

IF(@GroupKey = 1)
BEGIN
    SELECT 
        ItemID,
        StoreID,
        sum(Qty) Quantity,
        sum(ExtendedPrice) ExtendedPrice,
        sum(ExtendedCost) ExtendedCost
    into #tempQuantity
    FROM 
        dbo.F_ItemDailySalesParent

    WHERE
        ((@DateFrom is null) or (Time>=@datefrom)) and ((@DateTo is null) or (Time<=@dateTo))
    GROUP BY ItemID,StoreID
END
ELSE IF(@GroupKey = 2)
BEGIN
    SELECT 
        Year(Time),
        ItemID,
        StoreID,
        sum(Qty) Quantity,
        sum(ExtendedPrice) ExtendedPrice,
        sum(ExtendedCost) ExtendedCost
    into #tempQuantity
    FROM 
        dbo.F_ItemDailySalesParent

    WHERE
        ((@DateFrom is null) or (Time>=@datefrom)) and ((@DateTo is null) or (Time<=@dateTo))
    GROUP BY Year(Time),ItemID,StoreID
END
ELSE
BEGIN
    SELECT 
        Year(Time),
        DATEPART(WEEK,Time),
        ItemID,
        StoreID,
        sum(Qty) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures temp-tables

4
推荐指数
1
解决办法
6660
查看次数

存储过程不支持INSERT/EXECUTE INTO的功能原因?

在SQL Server中,无法从存储过程的结果中动态创建临时表,ala:

CREATE TABLE #temptable AS
EXEC spMyStoredProc
Run Code Online (Sandbox Code Playgroud)

要么

EXEC spMyStoredProc INTO #temptable
Run Code Online (Sandbox Code Playgroud)

或类似的东西.相反,您必须事先知道SP布局,并且必须执行以下操作:

CREATE TABLE #temptable (col1 INT, col2 VARCHAR(255))

INSERT INTO #temptable
EXEC spMyStoredProc
Run Code Online (Sandbox Code Playgroud)

是否存在功能性原因?可能是SQL Server的限制?或者它只是尚未添加到SQL规范中的东西,我可以抱有希望有一天它们会支持它吗?

t-sql sql-server stored-procedures temp-tables

3
推荐指数
1
解决办法
243
查看次数

加速SQL Server中的临时表连接

我有2个临时表#temp1和#temp.两者都有一个键和日期列.两者都有大约25,000行.我将根据所有行上唯一的键和日期加入它们.这次加入需要大约4分钟才能完成.有没有办法加快速度或任何替代方法?

sql sql-server join sql-server-2005 temp-tables

3
推荐指数
1
解决办法
2078
查看次数

oracle - 临时表与永久表

在Oracle中,临时表和永久表之间有什么区别?

oracle temp-tables

3
推荐指数
1
解决办法
2666
查看次数

如何将2个临时表一起添加

如果我正在创建临时表,则有2列.idscore.我想把它们加在一起.

我想添加它们的方式是,如果它们各自包含相同的,id那么我不想复制它id,而是将分数加在一起.

如果我有2个临时表调用t1t2

t1有:

id 3 score 4
id 6 score 7
Run Code Online (Sandbox Code Playgroud)

t2有:

id 3 score 5
id 5 score 2
Run Code Online (Sandbox Code Playgroud)

我最终会得到一个新的临时表,其中包含:

id 3 score 9
id 5 score 2
id 6 score 7
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是,我正在尝试构建产品搜索.我有一些我想要使用的算法,1使用全文而不是.我想使用这两种算法,所以我想创建一个基于algorithm1的临时表和一个基于algorithm2的临时表.然后结合它们.

mysql sql temp-tables

3
推荐指数
1
解决办法
8221
查看次数

为什么临时表没有从SQL Server中的tempdb中删除?

我创建了一个包含7个临时表的存储过程,每个临时表在自己的工作结束时被删除.

我从一个Web服务和相同的Web服务调用SP,我们用于不同的实例.

我强行删除了每个临时表,但是当SP执行时,它不会删除位于"tempdb/Temporary Table"中的任何临时表.而且,当我打开我的应用程序的新实例并尝试执行相同的SP时,它将修改相同的临时表.

这给我带来了麻烦.当SP同时执行时它将锁定表,它将锁定表,我的sp无法产生结果并抛出异常.

所以我想在操作结束时删除临时表.请帮忙.

sql sql-server temp-tables tempdb

3
推荐指数
1
解决办法
2万
查看次数

SQL Server拆分和表插入

我想使用SQL Server 2005执行以下操作.

  1. 创建一个以varchar()逗号","分隔的参数的存储过程

  2. 拆分/分解varchar()参数并将值插入临时表中

将执行以下操作的内容:

INSERT INTO #temp_table SPLIT('john,peter,sally',',');

SELECT * FROM #temp_table;
Run Code Online (Sandbox Code Playgroud)

是否有执行拆分的函数或存储过程?

如果是这样,它是如何工作的?

谢谢

sql-server split stored-procedures sql-server-2005 temp-tables

3
推荐指数
1
解决办法
5819
查看次数

PostgreSQL返回选择结果并将它们添加到临时表中?

我想选择一组行并将它们返回给客户端,但我还想将结果集中的主键(整数id)插入到临时表中,以便在同一事务中的后续连接中使用.

这是用于同步的,其中后续查询倾向于涉及来自先前查询的结果的连接.

最有效的方法是什么?

我很谨慎地执行两次查询,但如果它被添加到查询缓存中可能会很快.另一种方法是将整个结果集存储到临时表中,然后从临时表中进行选择.这看起来也很浪费(我只需要临时表中的整数id.)如果有一个SELECT INTO TEMP也返回结果,我会很高兴.

目前使用的技术是在客户端构造一个整数id的数组,并在随后的IN查询中使用它.我希望有更高效的东西.

我猜它可以用存储过程完成?但是有没有办法呢?

sql postgresql temp-tables common-table-expression

3
推荐指数
1
解决办法
1260
查看次数

SQL SERVER QUERY选择每个项目的最大值记录

这是样本表

在此输入图像描述

我需要实现的是仅获取或显示月份值最高的租户记录.如果月份相等,我需要根据最新的日期值.这是所需的输出样本

在此输入图像描述

有了这个,我开始使用这个代码使用max函数并合并临时表,但无法获得所需的结果.

select tenant, name,  date, month
into #sample
from tenant


select * 
from  #sample  
where months = (select max(months)from #sample)
Run Code Online (Sandbox Code Playgroud)

并输出到这样的东西.我相信,代码在整个列表中获得最大值而不考虑每个租户过滤.

在此输入图像描述

任何帮助将不胜感激 :)

sql sql-server temp-tables sql-server-2008

3
推荐指数
2
解决办法
2661
查看次数

Postgres-使用SELECT和ON COMMIT DROP创建临时表

在postgres(9.4)中,我试图通过select创建一个临时表并将“提交时提交”应用于同一表。我正在使用以下语法。

CREATE TEMPORARY TABLE t5 ON COMMIT DROP AS select * from test4
Run Code Online (Sandbox Code Playgroud)

它给消息

Query returned successfully: 5 rows affected, 62 ms execution time.
Run Code Online (Sandbox Code Playgroud)

但是当我查询同一张表时,

select * from t5
Run Code Online (Sandbox Code Playgroud)

它引发错误,

ERROR:  relation "t5" does not exist
LINE 1: select * from t5
                      ^
********** Error **********

ERROR: relation "t5" does not exist
SQL state: 42P01
Character: 15
Run Code Online (Sandbox Code Playgroud)

请理解后,让我知道问题出在哪里。

谢谢

postgresql temp-tables

3
推荐指数
1
解决办法
5408
查看次数