将SQL查询结果保存到表中

时间:2019-07-02 10:51:23

标签: sql sql-server tsql

我想将调整后的查询结果保存到表中。例如,我有代码350.8、351.94,并且我有T-SQL代码可删除小数点,从而得出调整后的结果350351等。我想将结果保存到表中,而不是Excel中。这可能吗?

我看到您可以创建一个具有相同列的新表,而不是新的调整结果。由于SQL Server无法识别adjusted1、2和3,因此以下内容不起作用。

CREATE TABLE DiagAdj 
(
     encounter_id NUMERIC,
     di_1 INT, 
     di_2 INT, 
     di_3 INT,
     adjusted1 INT,
     adjusted2 INT,
     adjusted3 INT,
);

INSERT INTO DiagAdj (encounter_id, adjusted1, adjusted2, adjusted3)
    SELECT encounter_id, adjusted1, adjusted2, adjusted3
    FROM dbo.Encounters

小数位已删除。我想将Adjusted3结果保存到表中

SELECT 
    encounter_id, di_3, -- now, try to cast to int the remainder, ending right before the decimal
    adjusted3 = TRY_CONVERT(int,LEFT(di_3, COALESCE(NULLIF(CHARINDEX('.', di_3) - 1, -1), 255)))
FROM 
    dbo.Encounters;

1 个答案:

答案 0 :(得分:1)

为什么不将每个小数列都强制转换为整数:

INSERT INTO DiagAdj (encounter_id, adjusted1, adjusted2, adjusted3)
SELECT
    encounter_id,
    CAST(diag1 AS DECIMAL(10,0)),
    CAST(diag2 AS DECIMAL(10,0)),
    CAST(diag3 AS DECIMAL(10,0))
FROM dbo.Encounters;
相关问题