在 Netsuite 保存的搜索中修剪或替换

问题描述

我在互联网上查看了很多关于 TRIM 和 REPLACE 的示例,但出于某种原因,我在尝试时总是遇到错误

我需要在保存的项目搜索中从我的 Netsuite 项目记录名称去除后缀。有三种可能的后缀:-T、-D、-S。所以我需要把24335-D变成24335,24335-S变成24335,24335-T变成24335。

以下是我尝试过的方法以及遇到的错误

formulas

results

你能帮我吗?注意:我不能假设起始字符串的特定字符长度。

用例:我们已经在项目记录上有一个名为 Nickname 的字段,并去掉了后缀。但是我遇到过与 Name 相比,Nickname 不正确的情况。例如:名称是 24335-D,但昵称是 24331-D。我正在尝试构建一个已保存的搜索警报,它会在任何时候告诉我昵称不等于去除后缀的名称

PS:有没有我可以支付快速点菜 Netsuite 保存的搜索问题的地方?依靠免费的互联网技术建议让我感觉很糟糕,但我非常感谢您能给我的任何帮助!

解决方法

您包含了太多的 SQL - 公式就像一个单一的结果字段表达式,而不是一个完整的语句,因此没有 FROM 或 AS。还有另一个地方可以设置结果列/字段名称。此处的一种选择是 Regex_replace()

REGEXP_REPLACE({name},'\-[TDS]$','')

正则表达式的含义:

\-    : a literal -
[TDS] : one of T D or S
$     : end of line/string

要比较字段,使用 CASE 语句的公式(数字)非常有用,因为它可以轻松地将结果与过滤器中的数字进行比较。例如,一个简单的等于 1。

CASE WHEN {custitem_nickname} <> REGEXP_REPLACE({name},'') then 1 else 0 end

The example formulae used as a filter criteria in a saved search.

,

您收到错误,因为 TRIM 只能修剪一个字符:请参阅 oracle 文档 https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html(最后一个例子)。

所以尝试使用这样的东西

TRIM(TRAILING '-' FROM TRIM(TRAILING 'D' FROM {entityid}))

并且始终记住,保存的搜索作为 Oracle SQL 查询运行,因此 Oracle SQL 文档可以帮助您了解如何使用可用函数。