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