【问题标题】:teradata : filtering alpahanumeric & only alphabetsteradata:过滤字母数字和仅字母
【发布时间】:2013-01-12 15:07:58
【问题描述】:

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

列数据:

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 

来自源表

column1 中的数据应该是

1.A123BDG

3.12HJKLL

4.78GHUBD

column2 中的数据应该是

2.ADGHKKL

5.GHJKUIP

6.KGJHGJG

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

提前致谢

【问题讨论】:

  • 是的..它支持正则表达式

标签: sql regex teradata


【解决方案1】:

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 &lt;contains_numerals&gt; THEN &lt;do_something&gt; ELSE &lt;do_something_else&gt; END 块代替。

【讨论】:

  • 谢谢你能在不使用正则表达式的情况下给出相同的查询
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 2015-12-25
  • 2011-07-13
  • 2021-03-30
  • 1970-01-01
  • 2011-04-19
相关资源
最近更新 更多