2017-04-04 87 views
3

我需要在自定义字段上使用Netsute SQL表达式。 有一定的标准,该领域需要遵循;Netsuite 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工作,公式。

回答

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/]应符合一切是大写字母或斜杠。然后这将被替换为空字符串,即从列中移除。