SQL Server - 选择两个已知字符串之间的字符串

时间:2014-10-30 12:28:57

标签: sql-server substring charindex

我试图插入另一列,TEXT列中的数据库名称返回以下查询,该查询已插入到另一个表中:

EXEC master..sp_readerrorlog 0,1,"Database backed up. Database:"

返回

  

备份数据库。数据库:databaseName,创建日期(时间):2014/06/13(17:49:54),页面转储:197581,第一个LSN:488:6298:36,最后一个LSN:488:6314:1,转储设备数量:4,设备信息:......

在从这里重新发布其他帖子之后,我写道:

SUBSTRING([TEXT], LEN(LEFT([TEXT], CHARINDEX (': ', [TEXT]))) + 1, LEN([TEXT]) - LEN(LEFT([TEXT], 
CHARINDEX (': ', [TEXT]))) - LEN(RIGHT([TEXT], LEN([TEXT]) - CHARINDEX (', ', [TEXT]))) + 1) 
as DatabseName

返回

  

'数据库名,'保留逗号

我试图改变两个CHARINDEX parameter '+1'但没有成功。

有人知道如何摆脱这个逗号吗?

2 个答案:

答案 0 :(得分:1)

这条线怎么样?

SUBSTRING([TEXT], CHARINDEX('Database:', [TEXT]) + 10, CHARINDEX('creation date', [TEXT]) - (CHARINDEX('Database:', [TEXT]) + 12))

答案 1 :(得分:0)

总是有一个函数可以进行任何字符串操作。

噢,谷歌发现了什么!

http://www.spatialdbadvisor.com/sql_server_blog/136/string-tokenizer-for-sql-server-2008-written-in-tsql/

:)