0

末尾にスペースがあるレコードを見つける必要があります。を使用してクエリを作成しようとしましたLength(rtrim)が、必要なレコードが返されません。

例えば

abc "
abc       "
abc                                                               "

手伝ってください

4

1 に答える 1

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);

または、末尾にスペースがある可能性のあるテキストを含むYOURTABLE列を持つテーブルの場合:YOURCOLUMN

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

HORIZONTAL TABLINE FEED、またはもある場合CARRIAGE RETURNは、関数を使用してTRANSLATEこれらを通常のスペースとして扱うことができます。

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);
于 2016-06-20T06:39:16.590 に答える