teradata:过滤alpahanumeric&只有字母表

时间:2013-01-29 05:28:32

标签: sql regex teradata

我的其中一列中的数据看起来像

列数据:

1.A123BDG

2.ADGHKKL

3.12HJKLL

4.78GHUBD

5.GHJKUIP

6.KGJHGJG

现在我必须以这样的方式过滤掉数据:我检测到的是字母数字和只有alpahabets

选择

  case when <condition for detecting alphanumneric>
          then column_data
          end column1 ,
  case when <condition for detecting alphabets>
          then column_data
         end  column2 
来自source_table的

第1列中的

数据应为

1.A123BDG

3.12HJKLL

4.78GHUBD

第2列中的数据应为

2.ADGHKKL

5.GHJKUIP

6.KGJHGJG

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

先谢谢

1 个答案:

答案 0 :(得分: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> END块。

相关问题