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

PostgreSQL实现多列手机号数据转置,生成按类型拆分的行记录

PostgreSQL 数据转置实现方案

可以通过UNION ALL将原表中对应Personal和Office的两组字段分别查询后合并,同时过滤空值记录,得到目标格式:

SELECT 
    KEY,
    'Personal' AS Type,
    Mobile1 AS "Mobile Number",
    M1_St_Date AS "St Date",
    M1_Exp_Date AS "Exp Date"
FROM your_table
WHERE Mobile1 IS NOT NULL AND Mobile2 != ''

UNION ALL

SELECT 
    KEY,
    'Office' AS Type,
    Mobile2 AS "Mobile Number",
    M2_St_Date AS "St Date",
    M2_Exp_Date AS "Exp Date"
FROM your_table
WHERE Mobile2 IS NOT NULL AND Mobile2 != ''

ORDER BY KEY, Type;

说明:

  • 第一个查询块提取Mobile1对应的Personal类型数据,通过WHERE子句过滤掉手机号为空的记录;
  • 第二个查询块提取Mobile2对应的Office类型数据,同样过滤空值;
  • UNION ALL用于合并两个结果集,保留所有符合条件的行(若用UNION会自动去重,这里不需要);
  • 最后通过ORDER BY按KEY和Type排序,让同一KEY的记录排列在一起。

替换your_table为你的实际表名即可执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:12:48