【问题标题】:how to create variables+table (ID & DATE) - SQL如何创建变量+表(ID & DATE) - SQL
【发布时间】:2023-03-11 03:01:01
【问题描述】:

我是 SQL/HiveQL 的新手。

如何创建一个包含 2 个变量的表:ORG_ID(字符串)和 TIME_PERIOD(日期),如下所示:

ORG_ID | TIME_PERIOD
C2222  | 2018-01-31
C2222  | 2018-02-28
C2222  | 2018-03-31
...
C2222  | 2021-05-31
C2222  | 2021-06-30
D3333  | 2018-01-31
D3333  | 2018-02-28
D3333  | 2018-03-31
...
D3333  | 2021-05-31
D3333  | 2021-06-30
W2345  | 2018-01-31
W2345  | 2018-02-28
W2345  | 2018-03-31
...
W2345  | 2021-05-31
W2345  | 2021-06-30

我的 6 个 ID:C2222、D3333、W2345、E2111、T7232、U8967

TIME_PERIOD 包含 2018-01-31 和 2021-06-30(含)之间每个月的最后一天。

我没有在数据库中创建这些变量,如何创建它们?

提前致谢

【问题讨论】:

    标签: sql date hiveql


    【解决方案1】:
    CREATE TABLE [table_name] (     
        ORG_ID varchar(24) NOT NULL,     
        TIME_PERIOD Date NOT NULL    
    )
    

    在您的表中有一个带有用于索引等的主键的列也是一个好习惯。

    CREATE TABLE [table_name] (
        [RowID] Int IDENTITY(1,1) NOT NULL Primary Key,
        ORG_ID varchar(24) NOT NULL,     
        TIME_PERIOD Date NOT NULL    
    )
    

    RowID 将自动产生(计数)并且是表上的主索引。

    【讨论】:

    • 谢谢詹姆斯。如何首先创建变量 ORG_ID 和 TIME_PERIOD?我不知道
    • 上面的 create table 语句也会创建您要查找的列名。您需要针对数据库运行/执行该语句,并且将使用列名“RowID”、ORG_ID 和“TIME_PERIOD”创建一个新表
    • 谢谢詹姆斯。但是那些变量/列,至少 ORG_ID 和 TIME_PERIOD 将为空。我在数据库中没有它们,我需要按照上面的方法创建它们。 ORG_ID 与这 6 个 ID,TIME_PERIOD 与从 2018 年 1 月到 2021 年 6 月的一个月的最后一天。有关如何执行此操作的任何想法?
    • 现在您的表已经存在,只需插入数据。 INSERT INTO [dbo].[table_name] ([ORG_ID] ,[TIME_PERIOD]) VALUES ('C2222', '20180131'), ('C2222', '2018-02-28'), ... GoT-SQL
    • 非常感谢詹姆斯。我的问题是我实际上有 300 个 ID,所以 300x30(月)这意味着如果我遵循您的代码,我将不得不做 9000 个条目。你能想到其他更快的方法吗?
    猜你喜欢
    • 2018-08-09
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多