[英]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.