Функции SQL в NetSuite сохранили результаты поиска - как исправить эти функции? - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь добиться следующего в контексте вывода сохраненных результатов поиска NetSuite.

1. Удалите каждый символ после первого дефиса (-) или двоеточия (:), включая пробел перед любым из этих символов.

Так, например,

Ввод: тест 123 - XYZ: 123

это должно вывести как test 123 -> это должно даже удалить пространство, которое вы видите прямо перед дефисом.

Я попробовал два приведенных ниже кода

SUBSTR({custitem123}, 0, INSTR({custitem123}, '-')-1) SUBSTR({custitem123}, 0, INSTR({custitem123}, ':')-1)

И они прекрасно работают сами по себе - поэтому я пытаюсь объединить их в одну формулу, которая будет искать любой из них и удалять все символы после них - кроме этого, он также должен искать любой пробел прямо перед дефис или двоеточие и заменить его ничем. Не уверен, как ты этого добьешься.

2. Удалите все не алфавитные символы и пробел перед символами алфавита (если есть).

например Ввод: 1. Тест XYZ

Это должно иметь вывод как: Тест XYZ

Я пытался добиться этого, используя приведенную ниже формулу-

TRIM({class}, '[^A-Za-z ]', '')

Проблема этого подхода в том, что он не может заменить символ пробела перед первым алфавитом Теста. Я понимаю, что это потому, что я сказал, чтобы пропустить замену пробелов. Чего я не знаю, так это как заменить только пробел, который он находит перед первым символом алфавита.

Короче, как мне убедиться, что вывод: Тест XYZ

а не

Тест XYZ (с пробелом перед Тестом)

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете использовать regexp_substr как

regexp_substr({custitem123}, '[^-]+') для извлечения test 123 только из ввода: test 123 - xyz : 123

, если вы также добавите trim, то вы можете получить пробелывокруг обрезается как

например trim(regexp_substr({custitem123}, '[^-]+')) дает test 123 в качестве обрезанного вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...