私がやろうとしているのは、(Teradata SQL を使用して) 人の郵便番号が誤って住所行に入力されているかどうかを判断することです。さまざまなフォーラムを調べましたが、同様の質問は見つかりません。
最終的には、次のように書きたいと思います。
Where address_line_1 like '%[0-9][0-9][0-9][0-9][0-9]%'
何か案は?
ターゲット データベースは Teradata 13.x です
列全体を検査して、郵便番号のみが含まれているかどうかを確認する場合は、次のようにしてみてください。
where address_line_1 between '00000' and '99999'
しかし、文字列全体で 5 桁の連続する文字列を検索することを考えている場合、それは良いテストとは言えません。たとえば、以下は完全に有効な郵送先住所です。
28305 Southwest Main Street
データがロードされた後に有効性チェックを行うのは困難です。このようなタスクは、実際にはロード プロセス中に実行する必要があります。
この正規表現に一致するすべてのエントリを検索します[^0-9][0-9][0-9][0-9][0-9][0-9][^0-9]
これは、郵便番号の定義であると仮定して、正確に5桁の長さの数字を一部のテキストで見つけるためです。