如何子串字符串 [英] How to substring string

查看:78
本文介绍了如何子串字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 声明  @ string   varchar  20 
set @ string = ' e33-B6661-C1'
选择 substring( @ string ,charindex(' - ' @ string )+ 1,charindex(' - ' @ string ,charindex(' - ' @ string )+ 1)-charindex(' - ' @ string ) - 1)







此查询获取:B6661



但我们需要结果:C1

:e33-B6661

解决方案





用它来实现你的输出



 声明  @ string   varchar  20 
set @ string = ' e33-B6661-C1'

选择 @ string





获得输出B6661-C1



 选择 substring( @ string ,charindex('   - ' @ string )+ 1,len(< span class =code-sdkkeyword> @ string ) -  chari ndex('   - ' @ string  )+1)





获得输出C1



  select  substring(substring( @ string ,charindex('   - ' @ string )+ 1,len(  @ string ) -  charindex('   - ' @ string )+ 1)
,charindex(' - ',substring( @ string ,charindex(' - ' @ string )+ 1,len( @ string ) - charindex(' - ' @ string )+ 1))+ 1,
3


尝试:

 声明  @ string   varchar  20 
set @ string = ' e33-B6661-C1'
SET @ STRING = SUBSTRING( @ string ,CHARINDEX(' - ' @ string )+ 1 9999
SELECT SUBSTRING( @ string ,CHARINDEX(' - ' @ string )+ 1 9999

您可以在SELECT语句中完成所有操作,但是您需要替换对 @string 的两个引用使用SET SUBSTRING值。


另一种方式

 声明  @ string   varchar  20 
set @ string = ' e33-B6661 -C1'
选择 正确 @string 2 ), left @string 9 - 如果格式始终相同000-00000-00
SELECT right @ string ,charindex(' - ',reverse ( @ string )) - 1), left @ string ,len( @ string ) - charindex(' - ',reverse( @ string ))) - 如果格式不固定且破折号是分隔符



快乐编码!

:)


declare @string varchar(20)
set @string='e33-B6661-C1'
select substring(@string,charindex('-',@string)+1,charindex('-',@string,charindex('-',@string)+1)-charindex('-',@string)-1)




This query get: B6661

but we need result: C1
: e33-B6661

解决方案

Hi,

Use this to achieve your output

declare @string varchar(20)
set @string='e33-B6661-C1'

select @string



to get the output "B6661-C1"

select substring(@string,charindex('-',@string)+1,len(@string)-charindex('-',@string)+1)



to get the output "C1"

select substring(substring(@string,charindex('-',@string)+1,len(@string)-charindex('-',@string)+1)
,charindex('-',substring(@string,charindex('-',@string)+1,len(@string)-charindex('-',@string)+1))+1,
3)


Try:

declare @string varchar(20)
set @string='e33-B6661-C1'
SET @STRING = SUBSTRING(@string, CHARINDEX('-', @string) + 1, 9999)
SELECT SUBSTRING(@string, CHARINDEX('-', @string) + 1, 9999)

You can do it all in the SELECT statement, but you need to replace both references to @string with the SET SUBSTRING value.


Hi, another way

declare @string varchar(20)
set @string='e33-B6661-C1'
select right(@string,2), left(@string,9)--if format is always same 000-00000-00
SELECT right(@string, charindex('-', reverse(@string))-1) , left(@string,len(@string)- charindex('-', reverse(@string))) --if format is not fixed and dash is separator


Happy Coding!
:)


这篇关于如何子串字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆