2017-04-04 88 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/]應符合一切是大寫字母或斜槓。然後這將被替換爲空字符串,即從列中移除。