我的其中一列中的数据看起来像
列数据:
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
任何人都可以通过编写过滤字母数字和条件的条件来帮助我。字母
先谢谢
答案 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
块。