【问题标题】:TRIM or REPLACE in Netsuite Saved SearchNetsuite 保存的搜索中的 TRIM 或 REPLACE
【发布时间】:2020-12-18 18:28:55
【问题描述】:

我在互联网上查看了很多关于 TRIM 和 REPLACE 的示例,但由于某种原因,我在尝试时不断出错。

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

这是我尝试过的方法以及我得到的错误:

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

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

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

【问题讨论】:

  • 你能重新打开我的问题吗?

标签: sql formula netsuite trim saved-searches


【解决方案1】:

您包含太多 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},'\-[TDS]$', '') then 1 else 0 end

【讨论】:

  • 非常感谢布赖恩!这是完美的:)
【解决方案2】:

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

所以尝试使用类似的东西

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

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

【讨论】:

  • 谢谢!非常感谢您的建议!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多