2017-04-12 5 views
1

戻り値に新しい行が表示される回数を読み取る方法はありますか?私はregexp_count()を試しましたが、\nは戻り値にnが現れる回数だけをカウントします。新しい行/行が表示される回数をカウントします。

SELECT REGEXP_COUNT(DATA, '\n', 1, 'i') , _DATA FROM DATA_TABLE ; 

以下のサンプルは、3を返す必要があります。あなたはキャリッジリターンを検索したい場合は値が1行にすべてあると仮定すると、

ABCSLLA 
AAANN 
SDSDS 
+0

これは結果セットです。結果セット内の行は、改行によって終了されません。何を解決しようとしているのか、なぜこの数が必要なのか説明してから、お手伝いできるかもしれません。 – APC

+0

SQL Developerで値を表示すると、新しい行が表示されます。 – Potatooo

答えて

0

あなたは

SELECT REGEXP_COUNT(DATA, CHR(10), 1, 'i') , _DATA FROM DATA_TABLE; 

を試みることができる試すことができますCHR(13)である。
私はデモを作成しましたhere

0

以下のクエリはあなたのために働くはずです。

SELECT length(regexp_replace(DATA, '[^'||chr(10)||']', '')) + 1 FROM DATA_TABLE; 
+0

これは機能しません。私は上記のサンプル結果を添付しました。 – Potatooo

+0

考えているのか、役に立たないのですか?私はテーブル 'DATA_TABLE'を列' DATA'としています。この行には3行のサンプルがあります。私の答えで与えられた質問は3を返します。 – Nitish

0

マルチラインモードにフリップREGEXP_COUNTあなたは行末ではなく終了の文字列をカウントする$を使用することができます。 Table 8.2 for multiline and 8.3 for $ hereに詳細があります。例

SELECT REGEXP_COUNT(DATA, '$', 1, 'm') , _DATA FROM DATA_TABLE; 

最後の行がORであれば改行文字で終了しないという興味深い副作用がデータとともに3つ返されます。

関連する問題