将结果存储到变量或表中,以便以后使用

时间:2018-08-30 12:49:48

标签: sql db2

我的SQL查询返回132行有1列,我想存储它们以备后用。

我已经看过StackOverflow上的许多帖子。我正在尝试关注,但没有帮助:

DECLARE @store
SET @store=(select paramkey from parameter.p1val2 where paramname = 'BANKHOLIDAYS' and paramkey LIKE 'FI%')

是吗,所以我必须使用临时表存储所有行?所以我尝试关注

CREATE TABLE temp_table select paramkey from parameter.p1val2 where paramname = 'BANKHOLIDAYS' and paramkey LIKE 'FI%'

IT出现以下错误

  

发现以下意外令牌“ CREATE TABLE temp_table”   “声明开头”。预期的令牌可能包括:“”。   SQLCODE = -104,SQLSTATE = 42601,DRIVER = 3.62.57 SQL代码:-104,SQL   状态:42601

溴 萨拉

5 个答案:

答案 0 :(得分:1)

我正在使用db2,下面的事情对我来说确实有效,谢谢大家

CREATE TABLE temp_table (paramkey varchar(200))
insert into temp_table 

select substr(paramkey,3) from parameter.p1val2 where paramname = 'BANKHOLIDAYS' and paramkey LIKE 'FI%'

答案 1 :(得分:0)

就像使用它一样:

select paramkey INTO #temp_table 
from parameter.p1val2 where paramname = 'BANKHOLIDAYS' and paramkey LIKE 'FI%'

SELECT * FROM #temp_table

现在稍后使用#temp_table。

答案 2 :(得分:0)

对于MySQL,应该是

CREATE TEMPORARY TABLE foo SELECT paramkey FROM ...
-- Now use it ...
DROP TEMPORARY TABLE foo;

答案 3 :(得分:0)

用于创建mssql服务器临时表

  SELECT  * INTO ##tempTable FROM (select paramkey from parameter.p1val2
            where paramname = 'BANKHOLIDAYS' and paramkey   LIKE 'FI%')

用于创建mysql临时表

    CREATE TEMPORARY TABLE temp_table
   (select paramkey from parameter.p1val2
    where paramname = 'BANKHOLIDAYS' and paramkey   LIKE 'FI%');

答案 4 :(得分:0)

在Oracle中,您可以使用

CREATE TABLE tempTable as SELECT * FROM originTable WHERE x=y;

DB2也有类似的东西

CREATE TABLE tempTABLE AS (
    SELECT *
    FROM originTABLE WHERE x=y
) WITH DATA

可以肯定的是,其他DBMS在语法上也有所不同。