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

如何将列中带斜杠的字符串转换为逗号分隔格式?

当然可以实现!这种字符串格式转换需求在SQL里挺常见的,核心就是靠字符串替换和清理操作来搞定。我给你整理了几个主流数据库的实现方案,你照着自己用的数据库选就行:

主流数据库实现方案

MySQL/MariaDB

用嵌套的REPLACE和TRIM函数就能搞定,步骤很清晰:先把连续的双斜杠换成逗号,再把单个斜杠换成空格,最后清理掉首尾和中间多余的空格:

SELECT 
  REPLACE(
    TRIM(
      REPLACE(
        REPLACE(your_column, '//', ','), 
        '/', ' ')
    ), '  ', ' ') AS formatted_data
FROM your_table;

SQL Server

思路和MySQL一样,用REPLACE配合LTRIM/RTRIM来处理:

SELECT 
  REPLACE(
    LTRIM(RTRIM(
      REPLACE(
        REPLACE(your_column, '//', ','), 
        '/', ' ')
    )), '  ', ' ') AS formatted_data
FROM your_table;

PostgreSQL

用正则表达式替换会更简洁,一步就能处理所有替换和空格清理:

SELECT 
  regexp_replace(
    trim(
      regexp_replace(regexp_replace(your_column, '//', ',', 'g'), '/', ' ', 'g')
    ), '\s+', ' ', 'g') AS formatted_data
FROM your_table;
-- 要是你用的是PostgreSQL 14及以上版本,链式写法更直观:
SELECT 
  your_column
  |> regexp_replace('//', ',', 'g')
  |> regexp_replace('/', ' ', 'g')
  |> trim()
  |> regexp_replace('\s+', ' ', 'g') AS formatted_data
FROM your_table;

核心思路说明

不管用哪种数据库,核心步骤其实都是这三步:

  1. 把连续的//替换成你要的分隔符,
  2. 把剩下的单个/替换成片段之间的空格
  3. 去掉字符串首尾的空格,再把中间多余的连续空格合并成单个

这样就能把/142//0/ /25//45//0/完美转换成142,0 25,45,0的格式啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:47:59