sqlserver有两个相同的字符,怎么通过后面的字符截取字段

image.pngimage.png

FineReport xiaxiang1 发布于 2024-10-23 08:34
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
xiaxiang1Lv3初级互助
发布于2024-12-13 09:54

image.png

只能强制规定 SO单号前面不能出现 SO 这两个字母

最佳回答
0
snrtuemcLv8专家互助
发布于2024-10-23 08:37

你已经写了,换个格式,截取   单号:    后面的字符就可以

这个都是通用的

最佳回答
0
华莉星宸Lv7资深互助
发布于2024-10-23 08:38

从冒号开始截取

image.png

最佳回答
0
ChazzenLv2初级互助
发布于2024-10-23 08:38

你直接把SO换成   :SO不就可以了,逻辑一样

最佳回答
0
用户k6280494Lv6资深互助
发布于2024-10-23 08:48

SELECT   

    SUBSTRING(  

        my_column,   

        CHARINDEX(': ', my_column) + LEN(': ') +   

        (CASE WHEN my_column LIKE '%: SO%' THEN 2 ELSE 0 END),  

        LEN(my_column)  

    ) AS ExtractedString  

FROM   

    my_table  

WHERE   

    my_column LIKE '%: SO%';

最佳回答
0
CD20160914Lv8专家互助
发布于2024-10-23 08:50

SELECT 

    LastPOIndex = CHARINDEX('PO', OrderString, CHARINDEX('PO', OrderString) + 2),

    OrderNumber = CASE 

                    WHEN CHARINDEX('PO', OrderString, CHARINDEX('PO', OrderString) + 2) > 0 THEN

                        SUBSTRING(OrderString, CHARINDEX('PO', OrderString, CHARINDEX('PO', OrderString) + 2) + 2, 12)

                    ELSE

                        NULL

                  END

FROM Orders;

image.png

image.png

  • 0035705 0035705 sql server还有这么个写法啊
    2024-10-23 09:34 
  • CD20160914 CD20160914 回复 0035705 为什么没有,我不是写出来展示了吗
    2024-10-23 09:35 
最佳回答
0
快乐星光Lv5中级互助
发布于2024-10-23 09:11

-- 查询第一个SO后面是数字的SO位置

select PATINDEX('%SO[0-9]%', '的法国队覅就SO单号:SO23453453')

  • 6关注人数
  • 138浏览人数
  • 最后回答于:2024-12-13 09:54
    请选择关闭问题的原因
    确定 取消
    返回顶部