仅使用SQL拉取部分字符串

时间:2014-11-18 12:01:14

标签: sql sql-server

如何从列中'%'符号后仅拉回字符串?我有一个这样的字符串:

  

0.010%优先票据,将于2016年5月12日到期

我想回复一下:

  

高级笔记,将于2016年5月12日到期

到目前为止,我已尝试使用以下SQL来实现此功能,但这是不正确的。

right(name, CHARINDEX('[%]',name))

2 个答案:

答案 0 :(得分:4)

以下脚本将带回'%'

之后的所有内容
DECLARE @string nvarchar(200)

SET @string = '0.010% Senior notes, due May 12, 2016'

SELECT LTRIM(RTRIM(RIGHT(@string, CHARINDEX('%', REVERSE(@string))-1)))

结果:2016年5月12日到期的优先票据

希望这有帮助。

答案 1 :(得分:1)

这将给出您预期的输出:

    SELECT SUBSTRING('0.010% Senior notes, due May 12, 2016',
           CHARINDEX('%','0.010% Senior notes, due May 12, 2016')+1,
           LEN('0.010% Senior notes, due May 12, 2016')
    )

作为

SUBSTRING ( expression ,start , length ) will produce substring  
- Gives Specific String between Start and Length

CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] )
- Gives Index of Specific Character

LEN ( string_expression )
- Length Of String

输出

  Senior notes, due May 12, 2016