2

我有一种情况,我需要从 sql 表行中提取信息。一个典型的字符串看起来像,

RMR*AZ*10001312**119.76

RMR识别行的关键在哪里。我需要在第二个和第三个之间提取信息*,即10001312在第四个之后,即是119.76

此信息将填充到表格中。

我怎么能做到这一点?

4

4 回答 4

1

鉴于没有内置的 SQL 函数(我知道)来解析你想要的字符串,我建议使用用户定义的函数。然后你可以拆分你的字符串*并取出你关心的索引。

这里的线程有一些广泛的讨论和许多此类功能的示例。

于 2012-04-19T20:50:55.370 回答
1

在 SQL Server 中完成的示例,可能会对您有所帮助。

declare @myString varchar(50)
set @myString = 'sadfa*lkj*234r2*'

declare @startPosition int
declare @endPosition int

--First * location
select @startPosition = Charindex('*', @myString, 0)

--Second * location
select @endPosition = Charindex('*', @myString, @startPosition+1)
select @endPosition 

select substring(@myString, 
    @startPosition +1 ,
    @endPosition - @startPosition -1)
于 2012-04-19T20:54:09.303 回答
0

取决于您的数据库引擎。对于 DB2,我实现了这个: https ://stackoverflow.com/a/10175295/1336443

于 2012-04-19T20:48:47.533 回答
0

好吧,你还没有说你需要哪种 SQL 方言,所以只是一个通用的答案:使用 SQL 的字符串操作,例如看这里:http ://www.1keydata.com/sql/sql-substring.html

于 2012-04-19T20:49:04.860 回答