将数据插入临时表

时间:2018-02-28 22:44:57

标签: sql sql-server

我正在使用SQL Server而我正在尝试构建一个临时表,其中有一个当前令人兴奋的表检索到的列,并在每行中插入一个日期。

例如我有

select NumberID into #Table0
from Table1
where numcue in [conditions]

在新的Table0中,我按照一定的标准排序了NumberID。但是按照完全相同的顺序,我想为每一行引入一个日期。

有没有办法不使用CREATE TABLE或INSERT(我没有权限)

提前致谢

------- EDITION ---(更多信息)

也许我不清楚它,长话短说我在我的Datawarehouse的TABLE1中有IDNUMBER(10k +行),但每个IDNUMBER有20个日期。

在Excel中,我有每个IDNUMBER需要检索的日期,但我不知道如何直接使用QUERY检索确切的信息。并且日期没有标准只是每个IDNUMBER的随机日期,因此我无法直接对其进行编码。

所以我试图做的是,将每个IDNUMBER与Excel的日期放在一个临时表中,然后继续查看信息

希望这有助于进一步解释

提前致谢并获得所有当前答案

2 个答案:

答案 0 :(得分:0)

所以你的意思是这样的?

select NumberID, GETDATE() AS DateColumn into #Table0
from Table1
where numcue in [conditions]

答案 1 :(得分:0)

我认为您可以通过使用CTE(公用表表达式)来查找ID的行号。 我不确定是否是这种情况,但我知道你想增加每一行的日期,例如:

 NumberID|Date
      1  |2018-01-01
      3  |2018-01-02
     12  |2018-01-03
     25  |2018-01-04

在这种情况下,我提供了一些使用sys_objects表的代码作为示例:

    DECLARE @FirstDate DATE = '20180101'
    ;WITH CTE
    AS
    (
        SELECT TOP (100) PERCENT object_id, ROW_NUMBER() OVER (ORDER BY object_id ASC) AS RowNumber
            FROM master.sys.objects
            ORDER BY object_id
    )
    SELECT  object_id, DATEADD(dd, RowNumber-1, @FirstDate) AS Date, RowNumber
        FROM CTE;

Example 您可以忽略RowNumber列 - 我刚刚添加,您可以了解它是一个序列。

特别是对于你的情况,我认为这段代码应该有用 - 记得指定你的初始日期:

    DECLARE @FirstDate DATE = '20180101'
    ;WITH CTE
    AS
    (
        SELECT TOP (100) PERCENT NumberID, ROW_NUMBER() OVER (ORDER BY NumberID ASC) AS RowNumber 
            FROM Table1
            WHERE numcue IN [conditions]
    )
    SELECT NumberID, DATEADD(dd, RowNumber-1, @FirstDate) AS Date
        FROM CTE;