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

在SQL中如何拆分同一列中混合存储的CPT编码与HCPC编码?

实现方案

核心逻辑

  • 通过正则匹配区分两类编码:全为数字的判定为CPT编码,包含字母的判定为HCPC编码
  • 给两类编码分别按顺序分配行号,通过行号关联实现两列对齐输出

通用SQL示例(支持窗口函数的数据库均可适配)

WITH cpt AS (
    SELECT
        `Procedure Code` AS CPT,
        ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS row_num
    FROM 你的表名
    -- 全数字匹配规则可根据数据库类型替换
    WHERE `Procedure Code` REGEXP '^[0-9]+$'
),
hcpc AS (
    SELECT
        `Procedure Code` AS HCPC,
        ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS row_num
    FROM 你的表名
    WHERE `Procedure Code` NOT REGEXP '^[0-9]+$'
)
SELECT c.CPT, h.HCPC
FROM cpt c
INNER JOIN hcpc h ON c.row_num = h.row_num;

适配说明

  1. 如果你需要固定编码排序,可将ORDER BY (SELECT 1)替换为ORDER BY Procedure Code``或其他业务排序字段,避免不同数据库默认排序差异
  2. 不同数据库的全数字匹配规则可按需替换:
    • SQL Server:替换为WHERE ISNUMERIC(Procedure Code) = 1 或者 WHERE Procedure Code NOT LIKE '%[A-Za-z]%'
    • Oracle:替换为WHERE REGEXP_LIKE(Procedure Code, '^[0-9]+$')
  3. 若两类编码数量不一致,可替换为FULL OUTER JOIN避免丢失数据,缺值位置会返回NULL
  4. 不支持CTE的数据库可直接将两个子查询写到FROM从句中,逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:15:07