我有一种情况,我需要从 sql 表行中提取信息。一个典型的字符串看起来像,
RMR*AZ*10001312**119.76
RMR
识别行的关键在哪里。我需要在第二个和第三个之间提取信息*
,即10001312
在第四个之后,即是119.76
此信息将填充到表格中。
我怎么能做到这一点?
我有一种情况,我需要从 sql 表行中提取信息。一个典型的字符串看起来像,
RMR*AZ*10001312**119.76
RMR
识别行的关键在哪里。我需要在第二个和第三个之间提取信息*
,即10001312
在第四个之后,即是119.76
此信息将填充到表格中。
我怎么能做到这一点?
鉴于没有内置的 SQL 函数(我知道)来解析你想要的字符串,我建议使用用户定义的函数。然后你可以拆分你的字符串*
并取出你关心的索引。
这里的线程有一些广泛的讨论和许多此类功能的示例。
在 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)
取决于您的数据库引擎。对于 DB2,我实现了这个: https ://stackoverflow.com/a/10175295/1336443
好吧,你还没有说你需要哪种 SQL 方言,所以只是一个通用的答案:使用 SQL 的字符串操作,例如看这里:http ://www.1keydata.com/sql/sql-substring.html