【发布时间】:2018-06-23 09:44:05
【问题描述】:
我有 .CSV 格式的股票数据(总共 500 个 CSV)。我的目标是创建一个数据库,其中包含多个名为“A”、“B”的表,其中 A 和 B 指的是两种不同的股票。 我已经在数据库中加载了一个表,其中包含一个包含所有 500 个符号的列。
我想遍历每一行,以便我可以读取 CSV 并在我的数据库中为该股票创建一个表。例如,如果符号表中的第一行是“A”,那么我想通过读取名为“/path/A.csv”的 csv 文件在我的数据库中创建一个名为 A 的表
所有表的结构都相同。有“日期”、“开盘”、“高”、“低”、“收盘”、“成交量”四列
我为一只股票创建了一个表格。例如,在股票 A 的情况下,使用以下代码
create table A(
[Date] datetime2(7) NOT NULL,
[Open] float NULL,
High float NULL,
Low float NULL,
[close] float NULL,
Volume float NULL
)
BULK INSERT A
FROM 'D:\ASX\A.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
TABLOCK
)
由于我无法手动将名称从 A 更改为 B 和 C 直到它达到 500,因此我想知道如何从我的符号表中迭代 500 行,以便对于每次迭代,我上面的代码从 A 更改为B 到 C 等等。
【问题讨论】:
-
您有符号列表还是仅来自目录中的文件?似乎最好添加一个符号列并将所有文件导入一个表中。该单一实体更适合关系数据库。
-
我有另一个名为 symbols 的表,其中包含一个名为 Ticker 的单列,有 500 行,其中每一行都是一个 Ticker。例如,第一行将命名为“A”。
-
没有。不要为每个股票创建一个表。使用包含股票代码的附加列创建一个表
-
我对每只股票都有单独的 CSV,所以即使我创建了一个包含额外股票代码列的数据表,我也需要在读取 CSV 时运行一个循环。我该怎么做?
-
@f_hashim,我在答案中添加了规范化表设计的示例。
标签: sql-server database csv