Db2 9.7のselectステートメントのフィールドで、複数の空白(単語間の)を1つのスペースに置き換えるグローバル正規表現を実行する必要があります。正規表現は次のようなものに基づいています。
\s{2,}
クエリ(冗長な空白を間引かない)は次のようになります。
select
random_degrees_of_redundant_white-space_between_words as fieldName
from tableName
結果の内容は次のようになります。
I like to put varying numbers of whitespaces
between
words.
DB2 9.7でxmlqueryとfn:replaceを使用してこれを達成すると主張する人々の例を見てきましたが、自分の例を見て自分でこれを達成することはできません。
私の抽象的な例を、db2 9.7でこれを実現するためのモデルとして使用できるものに変換するのに十分な親切でしょうか?
カスタム関数またはストアドプロシージャを介してこれを達成する答えを提供しないでください。 DB2 9.7のデフォルトインストールで独立したselectステートメントを使用して(db2にアドオンをインストールせずに)これを実現したいと思います。
あなたは
取り替える
このような機能:
select replace('Text with random spaces', ' ', ' ')
from yourtable
2番目の引数は2つのスペースを示し、3番目の引数は単一の空白です。
編集:
複数の空白の場合、これは機能します-ネイティブ:
SELECT c1, length(c1), xmlquery('fn:replace($c,"[ ]+", " ")' PASSING c1 AS "c")
FROM test1