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

如何在varchar中找到5位数字?

龚国源
2023-03-14
问题内容

基本上,我只需要获取一个5位数的数字,并用空格分隔即可。5位数字可以在varchar中的任何位置。

示例:我在SQL 2008表中有一个varchar列,其中包含这些各种数据

travel visa 34322 LLL001
Coffee 34332 Jakarta 
FDR001 34312 Taxi cost cash
taxi cash 34321
34556 eating dinner with customer
eating dinner 34256 with customer
visa cost 34221 REF773716637366

5位数字可以在任何空格之间分隔的地方,什么是最好的提取方法呢?

34322
34332
34312
34556
34256
34221

谢谢

这样的行应返回空白

Visa refNbr 778738878

在没有运气的情况下尝试了以下内容

SELECT  pjtran.tr_comment 
,substring(pjtran.tr_comment,PATINDEX('%[0-9]%',pjtran.tr_comment),5)
,Left(SubString(pjtran.tr_comment, PatIndex('%[0-9.-]%', pjtran.tr_comment), 50),PatIndex('%[^0-9.-]%', SubString(pjtran.tr_comment, PatIndex('%[0-9.-]%', pjtran.tr_comment), 50) + 'X')-1)
,len(pjtran.tr_comment)-len(replace(pjtran.tr_comment,' ',''))

我想我需要结合使用对varchar中的空间数量进行计数。和以上。但我不确定该怎么做


问题答案:

这样的事情怎么样?

 select substring(tr_comment, patindex('%[0-9][0-9][0-9][0-9][0-9] %', tr_comment), 5) as zip5

如果要考虑它可能位于字符串的末尾:

 select substring(tr_comment, patindex('%[0-9][0-9][0-9][0-9][0-9] %', tr_comment + ' '), 5
                 ) as zip5


 类似资料:
  • 问题内容: 我有以下sql查询,该查询提供了按月,周和日分组的总h_time。相反,我想要月,周和日的h_time中位数。如何在Oracle SQL中做到这一点? 输出: 问题答案: 您的问题可能出在DATE类型携带的时间部分(即使您未明确设置它)。 要摆脱它,您可以使用trunc函数。 代替: 经过: 和: 经过:

  • 以下问题是在最近的一次微软采访中提出的 给定一个大小为 5 的未排序数组。需要多少个最小比较才能找到中位数?然后他把它扩展为n号。 根据我的说法,5个元素的解是6 这可以扩展到n个元素。如果不是,除了快速选择之外,我们如何在O(n)中的n个元素中找到中位数

  • 我有这样的数据。 从上述数据中细化“中位数”的最短方法是什么。我的结果应该是这样的... 中位数 = 1/2(n 1),其中 n 是样本中数据值的数量。

  • 本文向大家介绍5亿个int找到它们的中位数?相关面试题,主要包含被问及5亿个int找到它们的中位数?时的应答技巧和注意事项,需要的朋友参考一下 将2^32个数表示划分为2^16个区域,然后读取数据统计落在各个区域里的数的个数,之后就可以根据统计结果判断中位数落在哪个区域,同时知道这个区域中的第几大数刚好是中位数,然后第二次扫描只用统计这个区域中的那些数就可以    

  • 本文向大家介绍如何在R中找到没有分位数名称的分位数?,包括了如何在R中找到没有分位数名称的分位数?的使用技巧和注意事项,需要的朋友参考一下 R中的分位数的计算非常简单,我们只需要使用分位数功能,它就会返回所有分位数为0%,25%,50%,75%和100%的分位数。如果我们要避免打印这些分位数的名称,则可以将name = FALSE与分位数功能一起使用。例如,如果我们有一个叫做x的向量,那么没有名字

  • 问题内容: 要求 : 通用查询/函数,用于检查表的varchar列中提供的值是否实际上是数字,并且精度不超过允许的精度。 可用值: 表名称,列名称,允许的精度,允许的比例 一般建议是创建一个函数并使用to_number()来验证值,但是不会验证允许的长度(精度标度)。 我的解决方案: 使用Regexp验证号码 验证左部分的长度(十进制前)(我不知道它的实际名称是什么),因为对于小数位数,oracl