首页 > 解决方案 > 将 SQL 查询结果保存到表中

问题描述

我想将调整后的查询结果保存到表中。例如,我有代码 350.8、351.94,我有 T-SQL 代码来删除导致调整结果 350,351 等的小数点。我想将结果保存到表格中,而不是 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;

标签: sqlsql-servertsql

解决方案


为什么不将每个十进制列转换为整数:

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;

推荐阅读