首页 > 解决方案 > 将 2 个 select 语句的输出合并到 SQL Server 存储过程中的单列临时表中

问题描述

我在 StackOverflow 上尝试了多个帖子,但没有找到适合我的具体案例的帖子。所以问一个问题:我在 SQL Server 2012 中使用存储过程并创建一个只有一列的临时表,plan_year如下所示:

DECLARE @tbl_PlanYears TABLE
(
    plan_year VARCHAR(4)
);

现在我有一个字符串数组 [years] planYears,我想将其存储到这个表变量中。另外,我想将当前年份存储在此列中。

我正在使用此代码进行插入:

INSERT INTO @tbl_PlanYears
    SELECT string FROM udf_SplitString (@planYears,',')
    UNION
    SELECT YEAR(GETDATE());

来自的字符串planYears正确存储。但是如何在不替换前几年的情况下将当前年份的值也存储在同一列中?

标签: sqlsql-serverstored-procedures

解决方案


怎么样,UNION ALL而不是UNION

INSERT @tbl_PlanYears
SELECT string FROM udf_SplitString (@planYears,',')
UNION ALL
SELECT YEAR(getdate());

推荐阅读