数値以外のすべてのレコードを検索しようとしていますが、これにはalphabets
charachters
が含まれています。次のようにREGEXP_LIKEですべての数値を無視する
select SUBSTR(COLUMN1,8,4)
from tmp_table
where REGEXP_LIKE (SUBSTR(COLUMN1,8,4),'[^0-9\x]+$');
私は、クエリのために得る結果である:私は、私は次のクエリを実行しているように私は私がSUBSTR(COLUMN1,8,4)
から取得したデータを保存するつもりです何のデータ型を決定するために、この情報が必要
918
922S
944
950N
953
958S
974
977A
994A
995
:私が得たデータがある
select column1
from tmp_xsttable
where REGEXP_LIKE (SUBSTR(COLUMN1,24,4),'[^0-9\x]+$');
:
私も使用したクエリが入力されるデータを表示するために、クエリを追加していここ
AHGLXST912 200701010000912 L000000000000000000NC0000 CA20070216 10
AHGLXST917 200501020000917 L000000000020071231NC000001CC20090805 10
AHGLXST918 200501020000918 L000000000020071231NC000001CC20090805 10
AHGLXST920A200501020000920AL000000000000000000NC000001CA20050130 64
AHGLXST921 193501010000921 L000000000000000000NH0000 DA20040901 30
AHGLXST921D193501010000921DL000000000000000000NH0000 DA20040901 30
AHGLXST922A192501010000922AL000000000000000000NC0000 CA20050311 64
AHGLXST922G192501010000922GL000000000020081231NC0000 CC20090805 44
AHGLXST922N200501020000922NL000000000000000000NC0000 CA20050517 74
AHGLXST922S193501010000922SL000000000000000000NH0000 CA20040901 10
はtmp_table
のColumn1
にあるいくつかの例のデータセットです:
AHGLXST01362007061700530136L000000057000000000YH0005 RA20070619110
AHGLXST01362011092500540136L000000057000000000YH0005 RA20110927110
AHGLXST01362014090700950136L000000057000000000YC0009 RA20140909110
AHGLXST01371973112800670137L000000026000000000YH0008 RC2004052011011
AHGLXST01372006010100640137L000000026020061005YC0008 RC2006102511011
AHGLXST01391988040600510139L000000080500000000YH0006 RC2004052021022
AHGLXST01392007061700550139L000000080520101113YC0005 RC20101214210
AHGLXST01401997071300560140L000000047400000000YH0006 RC2004052011011
AHGLXST01402006042900560140L000000047400000000YH0008 RA20060426110
AHGLXST01402007061700750140L000000047400000000YH0007 RA20070619110
私は数値でレコードを無視しようとしていますが、私はアルファベットや文字を持つレコードと一緒にこれらの3桁の結果を得ます。 REGEXP_LIKEを変更してすべての数値を無視するにはどうすればよいですか?
もう一度お試しください。タイトルでは、 "**空白**を無視する"と言うと、あなたの投稿の最初の文では、 "**数値**以外のもの"と言って、正規表現に '\ x'とにかく文字のクラスとして解釈されません - 単に数字ではない文字、スラッシュまたは小文字の 'x'を含む部分文字列を探しているだけです)。私たちにも**入力**を見せて、コードではなく平易な英語で要件を説明してください。しかし、あなた自身と矛盾しないようにしてください。 – mathguy
@mathguyありがとう私は私のタイトルを変更しました。私が示した結果は、結果の一部です。私はこれらの結果が長いvarchar2の列であることを望んでいます。私はその記述の例を追加します。私はSUBSTRで文字列や文字を持っているかどうかを調べて、データ型を選択できるようにします。 – Auguster
あなたが提供したデータに対してクエリを実行しませんでしたが、それはできませんあなたが示す結果を生み出す。検出しようとしている「欠陥のある」行とサンプル入力の「良い」行を含める方がはるかに良いでしょう。問題は何ですか?たとえば、918:入力に数字918の後ろに空白があり、その場合には拒否したくないと思われますか? (彼らはおそらく拒否されるべきです、または数字を挿入する場合はスペースを最初にTRIMMEDする必要があります)。 – mathguy