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

SQL Server中如何从字符串字段中提取指定数字并拆分至多列

竖线分隔备注字段提取方案

固定值匹配提取(符合单case对应单列的需求)

核心逻辑:利用字符串全匹配判断目标备注是否存在,通过前后拼接|的方式避免部分值误匹配(比如不会把1800识别为180)。
以下为不同数据库的实现示例,以提取180、360、720、900四个固定备注值为例:

MySQL

SELECT
  CASE WHEN INSTR(CONCAT('|', Remarks, '|'), '|180|') > 0 THEN 180 ELSE NULL END AS remark_180,
  CASE WHEN INSTR(CONCAT('|', Remarks, '|'), '|360|') > 0 THEN 360 ELSE NULL END AS remark_360,
  CASE WHEN INSTR(CONCAT('|', Remarks, '|'), '|720|') > 0 THEN 720 ELSE NULL END AS remark_720,
  CASE WHEN INSTR(CONCAT('|', Remarks, '|'), '|900|') > 0 THEN 900 ELSE NULL END AS remark_900
FROM 你的业务表名;

SQL Server

SELECT
  CASE WHEN CHARINDEX('|180|', '|' + Remarks + '|') > 0 THEN 180 ELSE NULL END AS remark_180,
  CASE WHEN CHARINDEX('|360|', '|' + Remarks + '|') > 0 THEN 360 ELSE NULL END AS remark_360,
  CASE WHEN CHARINDEX('|720|', '|' + Remarks + '|') > 0 THEN 720 ELSE NULL END AS remark_720,
  CASE WHEN CHARINDEX('|900|', '|' + Remarks + '|') > 0 THEN 900 ELSE NULL END AS remark_900
FROM 你的业务表名;

PostgreSQL

SELECT
  CASE WHEN STRPOS('|' || Remarks || '|', '|180|') > 0 THEN 180 ELSE NULL END AS remark_180,
  CASE WHEN STRPOS('|' || Remarks || '|', '|360|') > 0 THEN 360 ELSE NULL END AS remark_360,
  CASE WHEN STRPOS('|' || Remarks || '|', '|720|') > 0 THEN 720 ELSE NULL END AS remark_720,
  CASE WHEN STRPOS('|' || Remarks || '|', '|900|') > 0 THEN 900 ELSE NULL END AS remark_900
FROM 你的业务表名;

按位置拆分提取(按备注出现顺序分到1-4列)

如果需要按备注出现的顺序拆分到对应列,不管备注值是什么,最多拆分4列,以MySQL为例实现如下:

SELECT
  -- 原始字段开头自带|分隔符,第一个有效值为分割后的第2个元素
  NULLIF(SUBSTRING_INDEX(SUBSTRING_INDEX(Remarks, '|', 2), '|', -1), '') AS remark_1,
  NULLIF(SUBSTRING_INDEX(SUBSTRING_INDEX(Remarks, '|', 3), '|', -1), '') AS remark_2,
  NULLIF(SUBSTRING_INDEX(SUBSTRING_INDEX(Remarks, '|', 4), '|', -1), '') AS remark_3,
  NULLIF(SUBSTRING_INDEX(SUBSTRING_INDEX(Remarks, '|', 5), '|', -1), '') AS remark_4
FROM 你的业务表名;

NULLIF函数用于将无备注的空字符串转为NULL,不需要可以直接去掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:06