You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将年份列拆分为多列(SAS、SQL实现)

拆分年份列的最简实现方案

假设你的原表名为original_table,包含TAXYR年份列以及ID、Status等关联字段,最通用且简单的实现方式是用SQL的CASE WHEN结合聚合函数,直接基于查询结果创建新表:

CREATE TABLE new_table AS
SELECT
    ID,
    Status,
    -- 这里列出所有需要保留到新表的其他业务字段
    MAX(CASE WHEN TAXYR = 2024 THEN TAXYR END) AS TAXYR2024,
    MAX(CASE WHEN TAXYR = 2025 THEN TAXYR END) AS TAXYR2025
FROM original_table
GROUP BY ID, Status -- 所有非聚合的字段必须包含在GROUP BY中

关键说明:

  • CASE WHEN会根据TAXYR的值匹配对应列,未匹配的年份列会显示为NULL
  • MAX聚合函数用于确保每个关联字段组合(比如同一ID+Status)下,对应年份只保留一个有效取值(若同一组合下对应年份有多条记录,可根据需求替换为MIN或其他聚合函数)
  • CREATE TABLE ... AS语法一步完成新表创建与数据填充,无需额外步骤

如果你的数据库支持PIVOT语法(如SQL Server、Oracle),也可以用以下简化写法,但兼容性不如CASE WHEN:

CREATE TABLE new_table AS
SELECT *
FROM original_table
PIVOT (
    MAX(TAXYR)
    FOR TAXYR IN (2024 AS TAXYR2024, 2025 AS TAXYR2025)
) AS pivot_table

内容的提问来源于stack exchange,提问作者Novichok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:57:14