当前位置: 首页 > 面试题库 >

使用PATINDEX在T-SQL中查找不同的长度模式

曾沛
2023-03-14
问题内容

我希望使用PATINDEX()将浮点数从某些varchars中拉出来。我知道在每个varchar字符串中,我只对存在的第一个浮点数感兴趣,但是它们的长度可能不同。

例如

'some text 456.09 other text'
'even more text 98273.453 la la la'

我通常会用正则表达式来匹配它们

  "[0-9]+[.][0-9]+"

但是,我找不到PATINDEX接受的+运算符的等效项。因此,它们需要分别与以下项匹配:

'[0-9][0-9][0-9].[0-9][0-9]' and '[0-9][0-9][0-9][0-9][0-9].[0-9][0-9][0-9]'

有什么方法可以将这两个示例varchar与一个有效的PATINDEX模式进行匹配?


问题答案:

我前一段时间在博客上写过这个。 使用SQL
Server提取数字

Declare @Temp Table(Data VarChar(100))

Insert Into @Temp Values('some text 456.09 other text')
Insert Into @Temp Values('even more text 98273.453 la la la')
Insert Into @Temp Values('There are no numbers in this one')

Select Left(
             SubString(Data, PatIndex('%[0-9.-]%', Data), 8000),
             PatIndex('%[^0-9.-]%', SubString(Data, PatIndex('%[0-9.-]%', Data), 8000) + 'X')-1)
From   @Temp


 类似资料:
  • 本文向大家介绍如何在C#中查找StringBuilder的长度?,包括了如何在C#中查找StringBuilder的长度?的使用技巧和注意事项,需要的朋友参考一下 要在C#中查找StringBuilder的长度,代码如下- 示例 输出结果 这将产生以下输出- 示例 让我们看另一个例子- 输出结果 这将产生以下输出-

  • 我试图使用Application Express以编程方式在Oracle12c中查找PL/SQL触发器中JSON数组的长度。这将允许我循环遍历每个元素,并将数据插入到另一个表中。现在,JSON作为CLOB存储在列中,我正在将其转换为VARCHAR2。代码如下: 我在运行此触发器时得到以下错误: SQL错误消息:ORA-06502:PL/SQL:数值或值错误 ORA-06512:at“apex_05

  • 我使用的是SQL Server 2012,我知道计算移动平均值非常简单。但我需要的是得到一个定义的窗口框架的模式和中位数,比如(在当前行之前有一个2的窗口;月份唯一): 如果有几个值符合模式,则选择第一个值。

  • 问题内容: 所以我有代码: 但它所做的就是不停地浏览所有歌曲。我以为如果可以找到当前正在播放的歌曲的长度,则可以使用“时间”模块在歌曲具有(睡眠)属性后继续播放。但是,我找不到如何在Windows上获取歌曲的长度。有人知道我的问题的解决方案吗? 问题答案: 您可以使用mutagen来获取歌曲的长度(请参阅本教程):

  • 本文向大家介绍查找所有元组在Python中是否具有相同的长度,包括了查找所有元组在Python中是否具有相同的长度的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将找出给定列表中的所有元组是否具有相同的长度。 与伦 我们将使用len函数并将其结果与我们正在验证的给定值进行比较。如果值相等,那么我们认为它们的长度相同,否则就不一样。 示例 输出结果 运行上面的代码给我们以下结果- 与所有人和

  • 是否可以在Adobe CQ5/Adobe Experience Manager中使用SQL2、SQL、XPath或QueryBuilder找到同名同级(SN)。我们正在努力准备升级到AEM 6的实例。X和jackrabbit oak已经禁用了对SNS的支持,这使得在不解决这个问题的情况下升级是不可能的。可以递归地遍历存储库,但这太慢了,我正在使用查询寻找更好的选项。SNS的定义如下: 我更喜欢SQ