我想将调整后的查询结果保存到表中。例如,我有代码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;
答案 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;