下面的查询是直接从现有数据库的具体数据:插入解析从一个数据库中的数据到另一个
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
这将创建一个表,看起来像这样:
| 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 |
作为一个侧面说明,值为“额外”位的原因是因为原始数据的格式如下所示:0.04 minutes
,0.008 minutes
和0.066 minutes
。我想摆脱会议记录并将其作为一个浮点数。
如何将该数据插入到另一个表中(我已经将该表与我要插入的表格以相同列格式存储)。
或者换句话说,我怎么可以移动到信息的INSERT语句是这样的:
INSERT INTO [Database].dbo.SQLTable3(File_Name,Version,Category,Value,Date)
您是否尝试过在你的查询的顶部添加此插入行? – McNets
好吧...你可以把它放到一个#temp表中,然后做一个简单的'INSERT INTO ... SELECT ... FROM ...'我说使用临时表,因为你从其他服务器拉。 – scsimon
如果您将第二行添加到SQLTable或SQLTable1,这将因为您的子查询将返回多于一行而中断。 –