0

私のテーブルには、基本的に2つの列があります(さらに多くの列がありますが、明らかに左側と右側があります)。左側のフィールドの1つであるFIELD1はLookupSet()からのものであり、各IDはFIELD1からの2つのアイテムを持つことができます。join(lookupset()、vbcrlf)を使用して、IDの両方の値を取得し、それをテーブルの1つのセルに入れることができます。これは機能しますが、vbcrlfを使用すると、行の高さが増加します。右側にデータがあり、その間に追加のスペースを置くことができないため、これは問題を引き起こします。

最初の行に対してsplit(join(lookupset()))。getValue(0)を実行し、次に値1に対してその下の行を実行しました。エラーなどをチェックするためのいくつかのiifステートメントを使用すると、これは機能します。

私が解決した問題の1つは、FIELD1の値がセルの幅より長くなる可能性があるが、2つを超えることはないということです。私はオラクルで次のような部分文字列の魔法を使うことができました:

SELECT ID, SUBSTR(FIELD1, 1, 70) FROM....
UNION
SELECT ID, SUBSTR(FIELD1, 70) FROM ...

並べ替えを使用すると、IDごとに最大4行のデータを取得できます。これにより、ルックアップセットを分割し、各値をテーブルに取得できます。

私の最後の問題、そしてうまくいけば誰かが助けてくれることは、私が部分文字列をgeするとき、それは単語を切り落とすことができ、次の行は単語の残りから始まるということです。おそらく正規表現を使用して単語を無傷に保つだけでなく、返される全長が<ある文字数未満であることを確認する方法はありますか?軌道に乗っていない場合は、現在行っているアプローチの一部を放棄できてうれしいです。

4

1 に答える 1

0


SUBSTR(FIELD1,1、regexp_instr(FIELD1、'[]'、70))を使用して、これを(助けを借りて)解決することができました。

SELECT ID, SUBSTR(FIELD1,1, regexp_instr(FIELD1, '[ ]', 70)) FROM....
UNION
SELECT ID, SUBSTR(FIELD1, regexp_instr(FIELD1, '[ ]', 70)) FROM ...
于 2013-01-17T19:36:07.233 に答える