Where句に数字以外のものが含まれているデータを特定するにはどうすればよいですか?
SELECT *
FROM <table>
WHERE REGEXP_LIKE(<column>, '[^[:digit:]]');
それが役に立てば幸い...
次のように、TRANSLATE関数を使用してこれを行うこともできます。
_SELECT *
FROM A_TABLE a
WHERE LENGTH(TRANSLATE(a.FIELD, 'x0123456789', 'x')) IS NOT NULL
_
フィールドに数字のみが含まれている場合、式LENGTH(TRANSLATE(a.FIELD, 'x0123456789', 'x'))
はNULLを返します。数字以外の文字が存在する場合は、数字以外の文字の数が返されます。
共有してお楽しみください。
これを試して
SELECT *
FROM table
WHERE regexp_like(column_name,'[^0-9]+');`
これにより、列に数字以外の文字が含まれるすべての行が選択されます。
詳細については、これを確認してください ページ 。
またはこれ
select * from <YOUR_TABLE>
where LENGTH(REPLACE(TRANSLATE(<YOUR_TABLE.your_column_name>,
’0123456789′, ‘@@@@@@@@@@’), ‘@’, NULL)) > 0;
完璧ではありませんが(「#」、「@」などの文字は考慮されていません)、迅速で汚い解決策は次のとおりです。
SELECT * FROM <YOUR_TABLE>
WHERE UPPER(<YOUR_TABLE.your_column_name>) = LOWER(<YOUR_TABLE.your_column_name>)