0

我在其中一列中有数据,看起来像

列数据:

1.A123BDG

2.ADGHKKL

3.12HJKLL

4.78GHUBD

5.GHJKUIP

6.KGJHGJG

现在我必须以一种我已经检测到哪个是字母数字并且只有字母的方式过滤掉数据

选择

  case when <condition for detecting alphanumneric>
          then column_data
          end column1 ,
  case when <condition for detecting alphabets>
          then column_data
         end  column2 

来自 source_table

column1 中的数据应该是

1.A123BDG

3.12HJKLL

4.78GHUBD

column2 中的数据应该是

2.ADGHKKL

5.GHJKUIP

6.KGJHGJG

任何人都可以通过编写过滤字母数字和字母的条件来帮助我

提前致谢

4

1 回答 1

2

Regex_INSTR(Column,'[[:digit:]]')将返回字符串中第一个数字的位置,以便您可以使用它来确定您的字符串(或作为参数传递给函数的记录字段值)是否包含数字。将此转移到您的示例中,它看起来像:

case when Regex_INSTR(Column,'[[:digit:]]') > 0
          then column_data
          end column1 ,
  case when Regex_INSTR(Column,'[[:digit:]]') <= 0
          then column_data
         end  column2 

请注意,这不是您给出的最佳示例,因为不需要进行双重选择,您可以简单地使用CASE WHEN <contains_numerals> THEN <do_something> ELSE <do_something_else> ENDblock 代替。

于 2013-01-29T05:52:40.117 回答