如何子串字符串 [英] How to substring string
本文介绍了如何子串字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
声明 @ 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屋!
查看全文