如何解决Teradata SQL中如何根据复杂的条件在Teradata SQL中选择行?
Find: ^(.).(.*)$
Replace: $1-$2
我只需要从上面的表格中选择这些行,其中:
- 在 col2 中是来自 col1 的值 + 更多(不管之前或之后)
- 请注意,Jan Kowal 和 Kowal Jan 是名字和姓氏,它可以是可交换的
- Case = False(不管字母是高还是小)
所以我只需要选择第一行和第二行:
col1 col2
Jan Kowal | Jan Kowal PHU
Bravo JohN | GB John BraVo
Ann Still | Ronald G
- 因为两行都有来自 col1 的值 + col2 中更多(之前或之后)的值
- 字母大小写 = False
- name 和 surname 并且可以交换
解决方法
您将第一列描述为具有“姓名”和“姓氏”,这意味着它恰好有两个组成部分。
对于这个问题,strtok()
可以提供帮助:
where regexp_instr(col2,strtok(col1,' ',1),'i') and
regexp_instr(col2,2),'i')
我在这里使用了正则表达式,因为如果要考虑单词边界,修改它会更简单。您的问题不清楚是否有必要。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。