首页 > 解决方案 > CASE WHEN 文本字段不等于值

问题描述

在 Netsuite 保存的搜索中,我试图创建一个公式,如果文本字段不等于单词,则该公式部分给出字段值 - 在这种情况下,单词是“consol”。我尝试了以下方法,但遇到了错误,并且不知道如何完成此操作。

CASE WHEN {custbody_eym_exhibitor_name} = 'Consol' THEN {custrecord511.custrecord501} WHEN {custrecord169.custrecord173} IS NOT NULL AND {custbody_eym_exhibitor_name} IS NOT 'Consol' THEN {custrecord169.custrecord173} ELSE {custbody90} END

任何帮助表示赞赏。

标签: netsuite

解决方案


我知道Suite Answer Id 10101建议您可以这样做CASE WHEN -- THEN -- WHEN -- THEN -- ELSE -- END。但是,这在保存的搜索中从未对我有用。我总是不得不做CASE WHEN -- THEN -- ELSE (CASE WHEN -- THEN -- ELSE -- END) END

如果您尝试执行以下操作:

如果 custbody_eym_exhibitor_name 是 Consol,则返回 custrecord511.custrecord501,并停止评估。

如果 custbody_eym_exhibitor_name 不是 Consol,则检查 custrecord169.custrecord173 是否为 NULL,并继续评估。

如果 custrecord169.custrecord173 为 NULL,则返回 custbody90,并停止评估。如果 custrecord169.custrecord173 不为 NULL,则返回 custrecord169.custrecord173,并停止评估。

这应该有效:

CASE WHEN {custbody_eym_exhibitor_name}='Consol' THEN {custrecord511.custrecord501} ELSE NVL({custrecord169.custrecord173},{custbody90}) END

如果您想检查 custbody_eym_exhibitor_name 是否包含 Consol 更改{custbody_eym_exhibitor_name}='Consol'{custbody_eym_exhibitor_name} LIKE '%Consol%'.

此外,“Consol”的两个测试都区分大小写。要解决此问题,您可以更改{custbody_eym_exhibitor_name}='Consol'LOWER({custbody_eym_exhibitor_name})='consol'


推荐阅读