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

SQL Server中Substring_Index函数的替代实现方案咨询

替代SUBSTRING_INDEX实现字符串拆分的方案(Azure Data Studio适用)

1. 新增存储拆分结果的列

这部分语句可直接沿用(注意部分SQL引擎无需重复写ADD):

ALTER TABLE Table_Name
ADD BU VARCHAR(255),
    Site_Name VARCHAR(255);

2. 使用CHARINDEX+SUBSTRING实现拆分更新

Azure Data Studio常用的SQL引擎(如SQL Server)不支持SUBSTRING_INDEX,可通过CHARINDEX定位分隔符位置,结合SUBSTRING完成截取,同时处理无分隔符的边界情况:

UPDATE your_table_name 
SET 
    -- 获取第一个“-”之前的内容,若无分隔符则保留原内容
    BU = CASE 
            WHEN CHARINDEX('-', Level_code) > 0 
            THEN SUBSTRING(Level_code, 1, CHARINDEX('-', Level_code) - 1)
            ELSE Level_code
         END,
    -- 获取第一个“-”之后的内容,若无分隔符则设为空(可按需改为保留原内容)
    Site_Name = CASE 
                  WHEN CHARINDEX('-', Level_code) > 0 
                  THEN SUBSTRING(Level_code, CHARINDEX('-', Level_code) + 1, LEN(Level_code))
                  ELSE ''
               END;

核心函数说明

  • CHARINDEX('-', Level_code):返回“-”在字符串中首次出现的位置,无分隔符时返回0
  • SUBSTRING(字符串, 起始位置, 长度):从指定起始位置截取字符串,长度参数超出剩余字符数时自动截取到末尾
  • CASE语句:避免无分隔符时出现无效截取报错,适配业务场景调整默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:42:03