2016-06-20 10 views
0

後ろに空白があるレコードを調べる必要があります。 Length(rtrim)を使用してクエリを作成しようとしましたが、必要なレコードが返されません。末尾のスペースplsql

abc " 
abc  " 
abc                " 

+0

[Oracle - 値を含む可能性のある先頭または末尾のスペース](http://stackoverflow.com/questions/3223226/oracle-finding-values-with-leading-or-trailing-spaces) –

+0

ここでは非常に興味深い[ヒント](http://www.dba -oracle.com/t_find_leading_trailing_spaces_text_column.htm) –

答えて

5

を支援してください私はあなたが正しい軌道に乗っていたと思います。次の例では、2番目と3番目のテキストを返しますが、最初のテキストは返しません。

SELECT * FROM 
    (SELECT 'abc' AS text FROM DUAL 
    UNION ALL 
    SELECT 'abc  ' AS text FROM DUAL 
    UNION ALL 
    SELECT 'abc      ' AS text FROM DUAL) 
WHERE LENGTH(RTRIM(text)) != LENGTH(text); 

それとも末尾のスペースでテキストを含む列YOURCOLUMNとテーブルYOURTABLE用:

SELECT * FROM 
YOURTABLE 
WHERE LENGTH(RTRIM(YOURCOLUMN)) != LENGTH(YOURCOLUMN); 

また、あなたはこれらの治療にTRANSLATE機能を使用することができますCARRIAGE RETURNHORIZONTAL TABLINE FEEDを持っている場合、または

SELECT * FROM 
    (SELECT 'abc' AS text FROM DUAL 
    UNION ALL 
    SELECT 'abc' || CHR(09) AS text FROM DUAL 
    UNION ALL 
    SELECT 'abc' || CHR(10) AS text FROM DUAL 
    UNION ALL 
    SELECT 'abc' || CHR(13) AS text FROM DUAL 
    UNION ALL 
    SELECT 'abc   ' AS text FROM DUAL) 
WHERE LENGTH(RTRIM(TRANSLATE(text, CHR(09) || CHR(10) || CHR(13), ' '))) != LENGTH(text); 
+0

こんにちはありがとうございます。しかし、私は何千もの記録を残していますが、私が私の記事で述べた上記の例と似ていません。末尾のスペースは、レコードごとに異なる場合があります。 bはシングル、ダブル、トリプルなどがあります。助けてください – Sujagni

+0

申し訳ありませんが、私は完全に理解していません。シングル、ダブル、トリプルはどういう意味ですか?そして、その末尾のスペースはレコードごとに異なる場合がありますか?私の例では、1つは0、1つは7つ、もう1つは24のスペースを持っています。クエリは、7と24のものを返します。 – User42

+0

混乱しています。私のテーブルには、1,2,3,4、.......... 100の末尾のスペースを持つレコードがあります。私はこれらのタイプのレコードを見つける必要があります。 – Sujagni

関連する問題