regexp_similar teradata 中的“^.$”问题
regexp_similar '^.$' issues in teradata
对于数据清理,我的程序中有很多硬编码值。我正在尝试将这些值放入 table。这个擦洗的条件之一就是找到字符和代码的长度(character_length(name) = 1)
。
但是当我尝试使用 ^.$
模拟 this 时,它没有捕捉到像 ¿
、¥
、Ã
这样的值
如果我做错了什么,请告诉我。
当我 运行 在下面的代码中看到这 3 个值 ¿、¥、Ã
select name from email_table
where character_length(name) = 1
and name not in
(select name from email_table
where regexp_similar(translate(name USING LATIN_TO_UNICODE WITH ERROR),'^.$', 'i') = 1)
好像是版本问题。
我们在不同的服务器上有 TD14 和 TD 15,我做了以下查询
select case when regexp_similar('¥','^.$', 'i')=1
然后 'Y'
否则 'N'
以输出结束;
在 TD 14 的情况下,我得到的输出为 'N',在 TD 15 的情况下,答案是 'Y'。
对于数据清理,我的程序中有很多硬编码值。我正在尝试将这些值放入 table。这个擦洗的条件之一就是找到字符和代码的长度(character_length(name) = 1)
。
但是当我尝试使用 ^.$
模拟 this 时,它没有捕捉到像 ¿
、¥
、Ã
如果我做错了什么,请告诉我。
当我 运行 在下面的代码中看到这 3 个值 ¿、¥、Ã
select name from email_table
where character_length(name) = 1
and name not in
(select name from email_table
where regexp_similar(translate(name USING LATIN_TO_UNICODE WITH ERROR),'^.$', 'i') = 1)
好像是版本问题。 我们在不同的服务器上有 TD14 和 TD 15,我做了以下查询 select case when regexp_similar('¥','^.$', 'i')=1 然后 'Y' 否则 'N' 以输出结束; 在 TD 14 的情况下,我得到的输出为 'N',在 TD 15 的情况下,答案是 'Y'。