SQL クエリ (oracle 11) のテキスト ボックスからテキストの最初の行を返そうとしています。テキスト ボックスの内容は次のようになります。
X WITHDRAWN
Explanation.
一番上の行、つまり X WITHDRAWN を返したいです。最初の行だけを見るように指定できるのか、それともキャリッジ リターンの前にすべてのテキストを返すように指定できるのかはわかりません。
regexp_substr を使用する必要があると思いますが、構文についてはよくわかりません。私が試してみました:
regexp_substr(TABLE.TEXT,'^.*$')
しかし、それはうまくいきませんでした。
編集:使用されるソリューション:
select regexp_substr(TABLE.TEXT, '[^,]+['||CHR(10)||']') from tab
編集:回答で改行と改行が混在していることに気付いたので、次の解決策を使用してテキストのみを返し、追加の文字は返しません。
select
replace(replace(regexp_substr(TABLE.TEXT, '[^,]+['||CHR(10)||']'),CHR(10),''),CHR(13),'')
from tab
編集: @Ben の回答に続いて、ソリューションを次のように修正しました。
select
initcap(replace(regexp_substr(TABLE.TEXT, '.*$', 1, 1, 'm'),CHR(13),''))
from tab