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

T-SQL字符串处理:获取/右侧内容,无/则返回原字符串

解决方案

首先纠正你语句里的两个问题:

  • 你把分隔符写成了反斜杠\,但实际要匹配的是正斜杠/
  • LEFT()函数是提取字符串左侧内容,你需要的是右侧,所以得换用SUBSTRING()或者RIGHT()

直接用CASE WHEN就能实现需求,语句如下:

SELECT 
    CASE 
        WHEN CHARINDEX('/', LogUser) > 0 THEN SUBSTRING(LogUser, CHARINDEX('/', LogUser) + 1, LEN(LogUser))
        ELSE LogUser
    END AS TargetResult
FROM table1

逻辑说明:

  1. CHARINDEX('/', LogUser)会返回正斜杠在字符串中的位置,如果返回值大于0,说明字符串包含/
  2. 当存在/时,用SUBSTRING()从/的位置+1开始,提取到字符串末尾,也就是/右侧的内容
  3. 如果不存在/,直接返回原字段值

你也可以用RIGHT()函数实现,写法如下:

SELECT 
    RIGHT(LogUser, LEN(LogUser) - CHARINDEX('/', LogUser)) AS TargetResult
FROM table1
WHERE CHARINDEX('/', LogUser) > 0
UNION ALL
SELECT LogUser AS TargetResult
FROM table1
WHERE CHARINDEX('/', LogUser) = 0

不过CASE WHEN的写法更简洁直观,推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:01:11