Netsuite SQL 表达式
Netsuite SQL Expressions
我需要在自定义字段上使用 Netsute SQL 表达式。
该字段需要遵循某些标准;
如果单元格仅包含 1 个(或 none)个大写字母,return
前 2 个字符,大写。
如果单元格包含 2 个(或更多)大写字母,return 只有这些。
此外,如果单元格包含正斜杠“/”,则包括
还有正斜杠。
我举几个例子;
Light Blue
Dark Navy
Yellow
BlacK/ReD
blue check
WHite/NAvy/GreY
berry
应该变成
LB
DN
YE
BK/RD
BL
WH/NA/GY
BE
我知道使用套件脚本可能更容易完成,但我无法访问它,所以我必须尝试使其与 SQL 和公式一起使用。
您可以尝试以下查询:
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/]
应该匹配 而不是 大写字母或正斜杠的所有内容。然后这将被替换为空字符串,即从列中删除。
我需要在自定义字段上使用 Netsute SQL 表达式。 该字段需要遵循某些标准;
如果单元格仅包含 1 个(或 none)个大写字母,return 前 2 个字符,大写。
如果单元格包含 2 个(或更多)大写字母,return 只有这些。
此外,如果单元格包含正斜杠“/”,则包括
还有正斜杠。
我举几个例子;
Light Blue
Dark Navy
Yellow
BlacK/ReD
blue check
WHite/NAvy/GreY
berry
应该变成
LB
DN
YE
BK/RD
BL
WH/NA/GY
BE
我知道使用套件脚本可能更容易完成,但我无法访问它,所以我必须尝试使其与 SQL 和公式一起使用。
您可以尝试以下查询:
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/]
应该匹配 而不是 大写字母或正斜杠的所有内容。然后这将被替换为空字符串,即从列中删除。