3

我需要在自定义字段上使用 Netsute SQL 表达式。该领域需要遵循某些标准;

  • 如果单元格仅包含 1 个(或没有)大写字母,则返回前 2 个大写字符。

  • 如果单元格包含 2 个(或更多)大写字母,则仅返回这些。

  • 此外,如果单元格包含正斜杠“/”,则
    也包括正斜杠。

我会举一些例子;

Light Blue
Dark Navy
Yellow
BlacK/ReD
blue check
WHite/NAvy/GreY
berry

应该成为

LB
DN
YE
BK/RD
BL
WH/NA/GY
BE

我知道这可能使用套件脚本更容易完成,但我无权访问它,所以我必须尝试让它与 SQL 和公式一起使用。

4

1 回答 1

2

您可以尝试以下查询:

SELECT CASE WHEN LENGTH({col}) <= LENGTH(REGEXP_REPLACE({col}, '[A-Z]', '')) + 1
            THEN UPPER(SUBSTR({col}, 1, 2))
            ELSE REGEXP_REPLACE({col}, '[^A-Z/]', '')
       END AS output
FROM yourTable

正则表达式模式[^A-Z/]应该匹配不是大写字母或正斜杠的所有内容。然后这将被替换为空字符串,即从列中删除。

于 2017-04-04T03:37:47.137 回答