Oracle SQL数值用于查找10个Charcters

时间:2016-11-01 19:08:07

标签: sql oracle

我尝试了以下内容并且有效

选择VendorID
来自供应商
其中regexp_like(Vendor_name || Vendor_Secondary_name || Vendor_Alt_name,' \ d') ;

还有一种方法可以从名称中获取10个数字单词吗?例如,我不需要像2ABC,9street这样的名字。我只需要23街,123街。(

我有一个Vendor表,其中包含以下字段

VendorID                Varchar2(50),
Vendor_Name             Varchar2(250),
Vendor_Secondary_Name   Varchar2(250),
Vendor_Alt_name         Varchar2(250);

使用以下数据:

VendorID    Vendor_name      Vendor_Secondary_name  Vendor_Alt_name
123         1258968954 Alpha        Alpha                  Beta Alpha
456         Sigma Solutuion  Sigma suite 9500       Sigma
789         Beta pvt Ltd     Beta LTD               Beta Alpha
5899        ABC              ABC INFO               ABC  IN 698545896
1222        XYZ              XYZ                    XYZ Inc

我需要一个SQL查询来查找所有供应商ID,其中任何名称字段都有数值。在这种情况下,我需要以下内容:

123

5899

修改

从评论中复制的SQL:

select *
  from vendor
  where REGEXP_LIKE ((Vendor_name, '^[0-9]*$') or
        REGEXP_LIKE (Vendor_secondary_name, '^[0-9]*$') or
        REGEXP_LIKE (vendor_alt_name, '^[0-9]*$'));

1 个答案:

答案 0 :(得分:1)

select  VendorID        
from    Vendor     
where   regexp_like (' ' || Vendor_name || ' ' || Vendor_Secondary_name || ' ' || Vendor_Alt_name || ' ','\s\d{10}\s')
;