我有一个字符串,我需要在方括号中输入字符
declare @String Varchar(50)
Set @String ='C910-C916[02]'
Select
Substring(Rtrim(Ltrim(@String)), CHARINDEX('[', Rtrim(Ltrim(@string))) + 1, (len(@string) - 1)) val3
输出:
vol3
02]
但是预期输出是
vol3
02
此查询出了什么问题?
答案 0 :(得分:1)
您可以使用以下内容:
DECLARE @String VARCHAR(50)
SET @String ='C910-C916[02]'
-- output: 02
SELECT SUBSTRING(RTRIM(LTRIM(@String)), CHARINDEX('[', RTRIM(LTRIM(@String))) + 1, CHARINDEX(']', RTRIM(LTRIM(@String))) - CHARINDEX('[', RTRIM(LTRIM(@String)))-1) val3
使用此解决方案,您还可以在文本中间获得数字:
DECLARE @String VARCHAR(50)
SET @String ='C910-C916[02] Hello World'
-- output: 02
SELECT SUBSTRING(RTRIM(LTRIM(@String)), CHARINDEX('[', RTRIM(LTRIM(@String))) + 1, CHARINDEX(']', RTRIM(LTRIM(@String))) - CHARINDEX('[', RTRIM(LTRIM(@String)))-1) val3
答案 1 :(得分:1)
您也可以这样做:
SELECT PARSENAME(REPLACE(@String,'[','.['),1);