首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL查询中的字符串中间提取数据

从SQL查询中的字符串中间提取数据
EN

Stack Overflow用户
提问于 2012-10-04 23:50:13
回答 2查看 2.1K关注 0票数 0

我目前有一个显示多列数据的SQL查询。在其中一列中,我想将数据缩减为只显示真正需要的内容。问题是我想要的数据在字符串的中间。我知道在我需要的值之前是什么,之后是一个固定的常数。字符串的其余部分可能会发生变化。在SQL查询中有没有一种只显示数据的方法?

下面是字符串中数据的示例。我只想查看LR和SCCM之间的数据。

代码语言:javascript
复制
A   %VR1  P  P%V 104.922043 %      Pt 4.902552 psig       PLR2  P  LR **0.350922** sccm      PL 0.001313 dpsig   

R   %VR1  P  P%V 105.017807 %      Pt 4.934245 psig       PLR2  F  LR **5.366095** sccm      PL 0.014557 dpsig     

A   %VR1  P  P%V 100.644852 %      Pt 5.112900 psig       PLR2  P  LR **-0.029057** sccm     PL 0.000377 dpsig     

A   %VR1  P  P%V 101.631256 %      Pt 5.107606 psig       PLR2  P  LR **2.515130** sccm      PL 0.006896 dpsig       
EN

回答 2

Stack Overflow用户

发布于 2012-10-04 23:52:53

SQL引擎有SUBSTR()或SUBSTRING()函数,如果您总是需要跳过前两个字符和最后四个字符,它们将执行您所需的操作。

票数 1
EN

Stack Overflow用户

发布于 2012-10-04 23:58:52

如果使用的是SQL Server

代码语言:javascript
复制
declare @String varchar(500)

set @String = 'A %VR1 P P%V 101.631256 % Pt 5.107606 psig PLR2 P LR 2.515130 sccm PL 0.006896 dpsig '

select SUBSTRING(@String, charindex('PLR2 P LR ', @String) + 10, charindex(' sccm PL', @String) - charindex('PLR2 P LR ', @String) - 10)

如果您确定LR和sccm是唯一的,您可以使用:

代码语言:javascript
复制
declare @String varchar(500)

set @String = 'A %VR1 P P%V 101.631256 % Pt 5.107606 psig PLR2 P LR 2.515130 sccm PL 0.006896 dpsig '

select SUBSTRING(@String, charindex('LR ', @String) + 3, charindex(' sccm', @String) - charindex('LR ', @String) - 3)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12731026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档