簡體   English   中英

從 Teradata 的列中過濾不需要的字符

[英]Filter unwanted characters from a column in Teradata

我的表中有一個電話號碼列,其值僅為數字,沒有特殊字符。 對於其中一列,我得到一個值為“:1212121212”的值。

我需要過濾這條記錄以及任何帶有 teradata 中任何特殊字符的記錄。 任何人都可以幫助解決這個問題。

我已經嘗試了以下解決方案,但它不起作用

where (REGEXP_SUBSTR(column_name, '[0-9]+')<>1 or column_name is null )

在 MS SQL Server DB 中,您可以使用TRYCAST查找那些具有非數字字符的條目:

SELECT column_name 
FROM yourtable
WHERE TRY_CAST(column_name AS INT) IS NULL;

在 Teradata DB 中,您可以使用TO_NUMBER

SELECT column_name 
FROM yourtable
WHERE TO_NUMBER(column_name) IS NULL;

如果您想靠近您的嘗試,可以使用LIKE查找非數字條目:

SELECT column_name 
FROM yourtable
WHERE column_name LIKE '%[^0-9]%';

請注意,當您的表有很多行時,這可能會變慢。

謝謝喬納斯。 由於我只需要數值並且長度應為 10,因此我嘗試了以下方法並且它有效。 這將忽略所有額外的特殊字符。

(regexp_similar(Column,'[0-9]{10}')=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM