【问题标题】:determine column having numeric or string in oracle在 oracle 中确定具有数字或字符串的列
【发布时间】:2016-04-18 10:23:09
【问题描述】:

我需要确定该值是否为数字。例如,我有一个数据类型为 varchar2 的日期值。我需要找到该列是否仅返回数字。需要用 oracle 中的大小写来处理。

select case when d.data_type ='DATE' then to_char(to_date(v.value,'YYYYMMDD'),'DD-MM-YY') else v.value end as "Value" from data_type d , value v ;

在本例中,v.value 可以包含字符串值。但我需要检查在 Case 语句中列的值是否为数字。请帮助我。预期的查询是

select case when d.data_type ='DATE' and 'd.value haing number only' then to_char(to_date(v.value,'YYYYMMDD'),'DD-MM-YY') else v.value end as "Value" from data_type d , value v ;

【问题讨论】:

    标签: string oracle date case


    【解决方案1】:

    您可以使用regexp_like 来查看该值是否只有数字:

    select (case when regexp_like(date, '[^0-9]') then 'NonNumeric'
                 else 'Numeric'
            end)
    

    注意:这仅检查数字。如果您允许使用其他字符(例如“-”、“.”、“+”、“,”),则可以轻松地修改正则表达式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多