TRIM 或在 Netsuite 保存的搜索中替换

TRIM or REPLACE in Netsuite Saved Search

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

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

这是我尝试过的方法和遇到的错误:

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

用例:我们已经在名为昵称的项目记录中删除了后缀。但我遇到过 运行 与姓名相比昵称不正确的情况。例如:名字是 24335-D 但昵称是 24331-D。我正在尝试建立一个已保存的搜索警报,它会在昵称不等于后缀剥离的名称时随时告诉我。

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

您包含的内容太多 SQL - 公式就像一个单一的结果字段表达式,不是完整的语句,因此没有 FROM 或 AS。还有一个地方可以设置result column/field name。这里的一个选项是 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},'\-[TDS]$', '') then 1 else 0 end

您收到一个错误,因为 TRIM 只能 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 文档可以帮助您了解如何使用可用的功能。