【问题标题】:Identifying special characters in a column - Teradata识别列中的特殊字符 - Teradata
【发布时间】:2018-09-25 15:19:19
【问题描述】:

我遇到了一些特殊字符输入到列中的情况。

例如:-“特殊字符 - 标准”。

该列的合法值包含字母和连字符 - 符号。

有什么帮助吗?

我无法通过 Equality 运算符获取它们。

谢谢

【问题讨论】:

  • 尝试一些u符号"\u00E2\u20AC\u201C"

标签: regex teradata


【解决方案1】:

类似于下面的查询。

以下查询中的

[ ] 表示该方形 baracets 中的任何值位置

A-Z 表示 A 和 Z 之间的任何 aplhabet

- 是你的 - 值,因为 - 有特殊含义,必须用 \

转义 [ ] 中的

^ 表示它不应具有上述任何值。这给出了你所有的特殊字符值(由你定义)

  • 表示特殊字符值的一个或多个值

i 是忽略大小写

= 1 表示正确

.* 表示您的变量可能具有其他值以及特殊字符值。

这个查询给出了你感兴趣的列的所有值

SELECT * FROM yourtable WHERE REGEXP_SIMILAR(columnname, '.*[^A-Z\-]+.*', 'i') = 1;

【讨论】:

  • 如果我想更新特殊字符,我应该如何处理,regexp_replace(columnname,'â€"","-") ??。我担心正则表达式是否会识别这些.
  • REGEXP_REPLACE(columnname, [^AZ\-], '-',1,0,i) 或类似 REGEXP_REPLACE(columnname, [â€]+, '-',1,0,一)
  • 可能更有效otranslate(columnname, 'â'||chr(9), '')
猜你喜欢
  • 2014-04-25
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 2012-10-30
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多