Sql server T-SQL-如何删除特定字符左侧的文本
我有一个表,它以下面的格式返回可变字符串长度:Sql server T-SQL-如何删除特定字符左侧的文本,sql-server,tsql,Sql Server,Tsql,我有一个表,它以下面的格式返回可变字符串长度: Example Text: More example text 如何删除冒号之前的所有文本和冒号,只将文本保留在冒号的右侧,从而得到以下结果: More example text 右边的文本可以是任意长度 谢谢您可以使用CHARINDEX查找冒号的索引,然后使用RIGHT将所需文本作为子字符串: DECLARE @text VARCHAR( MAX ) = 'Example Text: More example text' PRINT RIG
Example Text: More example text
如何删除冒号之前的所有文本和冒号,只将文本保留在冒号的右侧,从而得到以下结果:
More example text
右边的文本可以是任意长度
谢谢您可以使用CHARINDEX查找冒号的索引,然后使用RIGHT将所需文本作为子字符串:
DECLARE @text VARCHAR( MAX ) = 'Example Text: More example text'
PRINT RIGHT( @text, LEN( @text ) - CHARINDEX( ':', @text ) )
-- Prints " More example text"
要删除前导空格,可以LTRIM输出:
PRINT LTRIM( RIGHT( @text, LEN( @text ) - CHARINDEX( ':', @text ) ) )
-- Prints "More example text"
您可以使用
SUBSTRING
、CHARINDEX
和LTRIM
:
DECLARE @Str VARCHAR( MAX ) = 'Example Text: More example text'
SELECT SUBSTRING(@Str , CHARINDEX(':',@Str)+1 , LEN(@Str)) With_Space,
LTRIM(SUBSTRING(@Str , CHARINDEX(':',@Str)+1 , LEN(@Str))) Without_Space
.这是对我有效的答案。Script.Topic是列名:
SELECT RIGHT('{Script.Topic}', len('{Script.Topic}') - charindex(':', '{Script.Topic}'))
使用LTRIM()
删除文档中“更多示例文本”的前导空格:“返回指定字符串表达式的字符数,不包括尾随空格。”隐藏RTrim()
。是否可能“更多示例文本”有冒号?因此您想要“更多示例文本”
是否有一个前导空格?