[英]Inserting parsed data from one database into another
The following query pulls specific data from an existing database: 以下查询从现有数据库中提取特定数据:
SELECT (
SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'File Name') AS File_Name,
(SELECT AttributeData FROM SQLTable WHERE AttributeName = 'Version Number') AS Version,
(SELECT 'Category Name') AS Category,
CAST(LEFT((SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),
CHARINDEX('m', (SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),1 )-2) AS float) AS Value,
GETDATE() AS Date
FROM SQLTable2
GROUP BY FinalDisposition
UNION
SELECT (
SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'File Name') AS File_Name,
(SELECT AttributeData FROM SQLTable WHERE AttributeName = 'Version Number') AS Version,
(SELECT 'Category Name') AS Category,
CAST(LEFT((SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),
CHARINDEX('m', (SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),1 )-2) AS float) AS Value,
GETDATE() AS Date
FROM SQLTable2
GROUP BY FinalDisposition
UNION
SELECT (
SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'File Name') AS File_Name,
(SELECT AttributeData FROM SQLTable WHERE AttributeName = 'Version Number') AS Version,
(SELECT 'Category Name') AS Category,
CAST(LEFT((SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),
CHARINDEX('m', (SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),1 )-2) AS float) AS Value,
GETDATE() AS Date
FROM SQLTable2
GROUP BY FinalDisposition
This creates a table that looks like this: 这将创建一个如下表:
| File_Name | Version | Category | Value | Date |
|:---------:|:-------:|:----------:|:-----:|:-----------------------:|
| File1 | 1.0.1 | Duration 1 | 0.04 | 2017-04-17 12:00:00.000 |
| File2 | 1.0.1 | Duration 2 | 0.008 | 2017-04-17 12:00:00.000 |
| File3 | 1.0.1 | Duration 3 | 0.066 | 2017-04-17 12:00:00.000 |
As a side note, the reason that value has the "extra" bits is because the format of the original data looks like this: 0.04 minutes
, 0.008 minutes
, and 0.066 minutes
. 附带说明一下,该值具有“额外”位的原因是因为原始数据的格式如下:
0.04 minutes
, 0.008 minutes
和0.066 minutes
。 I wanted to get rid of the minutes and cast as a float. 我想摆脱几分钟,成为浮标。
How can I insert that data into another table (I already have this table in the same column format as the table I want to insert it into). 如何将数据插入到另一个表中(我已经拥有与要插入该表的列格式相同的表)。
Or in other words, how can I move that information into an insert statement like this: 换句话说,我如何将这些信息移动到如下的插入语句中:
INSERT INTO [Database].dbo.SQLTable3(File_Name,Version,Category,Value,Date)
INSERT INTO SQLTable3
SELECT *
FROM(
SELECT (
SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'File Name') AS File_Name,
(SELECT AttributeData FROM SQLTable WHERE AttributeName = 'Version Number') AS Version,
(SELECT 'Category Name') AS Category,
CAST(LEFT((SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),
CHARINDEX('m', (SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),1 )-2) AS float) AS Value,
GETDATE() AS Date
FROM SQLTable2
GROUP BY FinalDisposition
UNION
SELECT (
SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'File Name') AS File_Name,
(SELECT AttributeData FROM SQLTable WHERE AttributeName = 'Version Number') AS Version,
(SELECT 'Category Name') AS Category,
CAST(LEFT((SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),
CHARINDEX('m', (SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),1 )-2) AS float) AS Value,
GETDATE() AS Date
FROM SQLTable2
GROUP BY FinalDisposition
UNION
SELECT (
SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'File Name') AS File_Name,
(SELECT AttributeData FROM SQLTable WHERE AttributeName = 'Version Number') AS Version,
(SELECT 'Category Name') AS Category,
CAST(LEFT((SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),
CHARINDEX('m', (SELECT AttributeData FROM SQLTable1 WHERE AttributeName = 'Duration 1'),1 )-2) AS float) AS Value,
GETDATE() AS Date
FROM SQLTable2
GROUP BY FinalDisposition)X
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.