将查询结果插入SQL Server数据库

时间:2016-01-25 16:18:16

标签: sql-server

我不经常使用SQL,因此我自己找出解决方案似乎没有时间效率。

我想插入此查询的结果

select 
    zadavatel, advertiser 
from 
    DATA_2015_CZ_CLEAN_v03 
where 
    Advertiser is null and zadavatel is not null
group by 
    zadavatel, advertiser

进入包含这些列[Zadavatel],[Advertiser],[Note]

的表格

此上,此广告客户的查询为null,但我想将广告客户的值更改为zadavatel值。显然是一排一排的。注意是可以为空的列。

使查询的结果看起来更容易理解。

Zadavatel Advertiser
Coca-Cola  Null
Pepsi-cola Null

表Zadavatel可能看起来像这样

Zadavatel   Advertiser  Note
Mercedes    Mercedes    Null
Ferrero ltd Ferrero     Null

更新后的Zadavatel应如下所示

Zadavatel   Advertiser  Note
 Mercedes     Mercedes    Null
 Ferrero ltd  Ferrero     Null
 Coca-Cola    Coca-Cola   Null
 Pepsi-Cola   Pepsi-Cola  Null

重要的是要提到的是,只有来自查询结果的广告客户才应该使用zadavatel值。正如您在决赛桌上看到的那样,费列罗有限公司和费列罗不匹配,这已经是人工处理的结果

由于

2 个答案:

答案 0 :(得分:1)

有点晚,但它也可以帮到你

USE tempdb
GO
IF OBJECT_ID(N'tempdb.dbo.#Data1') IS NULL
BEGIN
    CREATE TABLE #Data1
    (
    ID INT IDENTITY
    ,Valor1 VARCHAR(100)
    ,Valor2 VARCHAR(100)
    )
END
GO
IF OBJECT_ID(N'tempdb.dbo.#Data2') IS NULL
BEGIN
    CREATE TABLE #Data2
    (
    ID INT IDENTITY
    ,Valor1 VARCHAR(100)
    ,Valor2 VARCHAR(100)
    ,Note VARCHAR(100)
    )
END
INSERT INTO #Data1 (Valor1) VALUES ('test'), ('test3')
INSERT INTO #Data2 (Valor1,Valor2) VALUES ('test','test3'),('test2','test4')
GO
SELECT * FROM #Data1
SELECT * FROM #Data2
GO
INSERT INTO #Data2 (Valor1,Valor2)
SELECT Valor1, COALESCE (Valor2,Valor1) FROM #Data1
GO
SELECT * FROM #Data2
GO
DROP TABLE #Data2
DROP TABLE #Data1

答案 1 :(得分:0)

您可以通过添加INTO .....

插入Temp表
SELECT zadavatel, COALESCE(advertiser, zadavatel), NULL
INTO #TEMPTABLE
FROM DATA_2015_CZ_CLEAN_v03 

COALESCE处理广告商是否为NULL并在该实例中使用zadavatel。 不确定你想要什么。

如果您想将它放入permananet表中并且您已正确定义了表格....

INSERT INTO YourTable 
(Field1, Field2, Field3)
SELECT zadavatel, COALESCE(advertiser, zadavatel), NULL
FROM DATA_2015_CZ_CLEAN_v03