Sql server 2012 将数据插入现有SQL Server表中

Sql server 2012 将数据插入现有SQL Server表中,sql-server-2012,sql-insert,Sql Server 2012,Sql Insert,将数据插入现有SQL Server表时遇到问题 IF OBJECT_ID('Coinmarketcap.dbo.tbl_ATR', 'U') IS NOT NULL DROP TABLE Coinmarketcap.dbo.tbl_ATR; SELECT [Ticker],[Date],[px_high], [px_low], [px_close],[yest_close], ATR_spd = iif([px_high] > yest_close, [p

将数据插入现有SQL Server表时遇到问题

IF OBJECT_ID('Coinmarketcap.dbo.tbl_ATR', 'U') IS NOT NULL 
    DROP TABLE Coinmarketcap.dbo.tbl_ATR;   

SELECT
    [Ticker],[Date],[px_high], [px_low], [px_close],[yest_close],
    ATR_spd = iif([px_high] > yest_close, [px_high], yest_close) - iif([px_low] > yest_close, yest_close, [px_low]),
    ATR1 = (iif([px_high] > yest_close, [px_high], yest_close) - iif([px_low] > yest_close, yest_close, [px_low])) / (iif(yest_close = 0 , 1 , yest_close))
FROM 
    (SELECT 
         *, yest_close = lag([px_close]) OVER (PARTITION BY Ticker ORDER BY [Date])
     FROM 
         [Coinmarketcap].[dbo].[daily_data]) t
INTO 
    [Coinmarketcap].[dbo].[tbl_ATR]
ORDER BY 
    [Ticker] ASC, [Date] DESC
我不知道把
放在
语句的什么地方

关键字“INTO”附近的语法不正确


还尝试将
插入到
语句中,但没有效果。

只是有点不对劲。。。您不需要order by,因为您正在删除该表,并且它存储为无序集(因为这里没有应用索引)。我假设您希望从结果继承定义。这是通过使用
选择。。。进桌。。。从表
而不是插入到表中。。。选择。。。从表中

IF OBJECT_ID('Coinmarketcap.dbo.tbl_ATR', 'U') IS NOT NULL 
DROP TABLE Coinmarketcap.dbo.tbl_ATR; 

SELECT
    [Ticker],
    [Date],
    [px_high], 
    [px_low], 
    [px_close],
    [yest_close],
    ATR_spd = iif([px_high] > yest_close, [px_high], yest_close) - iif([px_low] > yest_close, yest_close, [px_low]),
    ATR1 = (iif([px_high] > yest_close, [px_high], yest_close) - iif([px_low] > yest_close, yest_close, [px_low])) / (iif(yest_close = 0 , 1 , yest_close))
INTO [Coinmarketcap].[dbo].[tbl_ATR]
FROM (
    SELECT 
        *, 
        yest_close = lag([px_close]) OVER (PARTITION BY Ticker ORDER BY [Date])
    FROM [Coinmarketcap].[dbo].[daily_data]
) t
注意,你不能

INSERT INTO TABLE
SELECT FROM SomeTable
不需要先显式创建该表。我在上面使用了
SELECT INTO
,因为您要在语句之前删除表