From 2873d3c8fc8a2c6c58f33b9c93eee28c7ce93376 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Thu, 13 Jan 2022 19:35:30 +0530 Subject: [PATCH] docs: formula table re-org --- .../content/en/setup-and-usages/formulas.md | 102 +++++++++++------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/packages/noco-docs/content/en/setup-and-usages/formulas.md b/packages/noco-docs/content/en/setup-and-usages/formulas.md index fbbde0c95d..ee87a83d29 100644 --- a/packages/noco-docs/content/en/setup-and-usages/formulas.md +++ b/packages/noco-docs/content/en/setup-and-usages/formulas.md @@ -27,41 +27,26 @@ menuTitle: "Formulas" ## Available Formula Features -### Functions - -| Name | Syntax | Sample | Output | Minimum arguments | -| ------- | -------------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------- | ----------------- | -| AVG | `AVG(value1, [value2,...])` | `AVG(Column1, Column1)` | Average of input parameters | 1 | -| ADD | `ADD(value1, [value2,...])` | `ADD(Column1, Column1)` | Sum of input parameters | 1 | -| CONCAT | `CONCAT(value1, [value2,...])` | `CONCAT(FirstName, ' ', LastName)` | Concatenated string of input parameters | 2 -| TRIM | `TRIM(value)` | `TRIM(Title)` | Removes trailing and leading whitespaces from input parameter | 1 -| UPPER | `UPPER(value)` | `UPPER(Title)` | Upper case converted string of input parameter | 1 -| LOWER | `LOWER(value)` | `LOWER(Title)` | Lower case converted string of input parameter | 1 -| LEN | `LEN(value)` | `LEN(Title)` | Input parameter charachter length | 1 -| MIN | `MIN(value1, [value2,...])` | `MIN(Column1, Column2, Column3)` | Minimum value amongst input parameters | 1 -| MAX | `MAX(value1, [value2,...])` | `MAX(Column1, Column2, Column3)` | Maximum value amongst input parameters | 1 -| CEILING | `CEILING(value)` | `CEILING(Column)` | Rounded next largest integer value of input parameter | 1 -| FLOOR | `FLOOR(value)` | `FLOOR(Column)` | Rounded largest integer less than or equal to input parameter | 1 -| ROUND | `ROUND(value)` | `ROUND(Column)` | Nearest integer to the input parameter | 1 -| MOD | `MOD(value1, value2)` | `MOD(Column, 2)` | Remainder after integer division of input parameters | 2 | -| REPEAT | `REPEAT(value1, count)` | `REPEAT(Column, 2)` | Specified copies of the input parameter string concatenated together | 2 -| LOG | `LOG(value1, [base])` | `LOG(Column)` | Logarithm of input parameter to the base specified | 1 -| EXP | `EXP(value)` | `EXP(Column)` | Exponential value of input parameter (`e^x`) | 1 -| POWER | `POWER(base, exponent)` | `POWER(Column, 3)` | `base` to the `exponent` power, as in `base^exponent` | 2 -| SQRT | `SQRT(value)` | `SQRT(Column)` | Square root of the input parameter | 1 -| ABS | `ABS(value)` | `ABS(Column)` | Absolute value of the input parameter | 1 -| NOW | `NOW()` | `NOW()` | Current date time | 0 -| REPLACE | `REPLACE(value, old_str,new_str)` | `REPLACE(Column, old_string, new_String)` | String, after replacing all occurrences of `old_string` with `new_String` | 3 -| SEARCH | `SEARCH(value, search_val)` | `SEARCH(Column, 'str')` | Index of sub-string specified if found, 0 otherwise | 2 -| INT | `INT(value)` | `INT(Column)` | Integer value of input parameter | 1 -| RIGHT | `RIGHT(value, count)` | `RIGHT(Column, 3)` | `n` characters from the end of input parameter | 2 -| LEFT | `LEFT(value1, [value2,...])` | `LEFT(Column, 3)` | `n` characters from the beginning of input parameter | 2 -| SUBSTR | `SUBTR(value, position, [count])` | `SUBSTR(Column, 3, 2)` | Substring of length 'count' of input string, from the postition specified | 3 -| MID | `SUBTR(value, position, [count])` | `MID(Column, 3, 2)` | Alias for `SUBSTR` | 3 -| IF | `IF(expression, success_case, [else_case])` | `IF(Column > 1, Value1, Value2)` | success_case if expression evaluates to TRUE, else_case otherwise | 2 -| SWITCH | `SWITCH(expression, [pattern,value,..., default_value])` | `SWITCH(Column1, 1, 'One', 2, 'Two', '--')` | Switch case value based on expression output | 3 -| AND | `AND(expression1, [expression2,...])` | `AND(Column > 2, Column < 10)` | TRUE if all expressions evaluate to TRUE | 1 -| OR | `OR(expression1, [expression2,...])` | `OR(Column > 2, Column < 10)` | TRUE if at least one expression evaluates to TRUE | 1 +### Numeric Functions + +| Name | Syntax | Sample | Output | +| ----------- | ------------------------------------------- | ----------------------------------------- | ---------------------------------------------- | +| **ABS** | `ABS(value)` | `ABS(Column)` | Absolute value of the input parameter | +| **ADD** | `ADD(value1,[value2,...])` | `ADD(Column1, Column1)` | Sum of input parameters                         | +| **AVG** | `AVG(value1,[value2,...])` | `AVG(Column1, Column1)` | Average of input parameters                 | +| **CEILING** | `CEILING(value)` | `CEILING(Column)` | Rounded next largest integer value of input parameter | +| **EXP** | `EXP(value)` | `EXP(Column)` | Exponential value of input parameter (`e^x`) | +| **FLOOR** | `FLOOR(value)` | `FLOOR(Column)` | Rounded largest integer less than or equal to input parameter | +| **INT** | `INT(value)` | `INT(Column)` | Integer value of input parameter                 | +| **LOG** | `LOG([base], value)` | `LOG(10, Column)` | Logarithm of input parameter to the base (default = e) specified | +| **MAX** | `MAX(value1,[value2,...])` | `MAX(Column1, Column2, Column3)` | Maximum value amongst input parameters | +| **MIN** | `MIN(value1,[value2,...])` | `MIN(Column1, Column2, Column3)` | Minimum value amongst input parameters | +| **MOD** | `MOD(value1, value2)` | `MOD(Column, 2)` | Remainder after integer division of input parameters | +| **POWER** | `POWER(base, exponent)` | `POWER(Column, 3)` | `base` to the `exponent` power, as in `base^exponent` | +| **ROUND** | `ROUND(value)` | `ROUND(Column)` | Nearest integer to the input parameter | +| **SQRT** | `SQRT(value)` | `SQRT(Column)` | Square root of the input parameter                 | +|                       |                                                                                                       |                                                                                                       |                                                                                             | + ### Numeric Operators @@ -72,7 +57,29 @@ menuTitle: "Formulas" | `*` | `column1 * column2` | Multiplication of numeric values | | `-` | `column1 / column2` | Division of numeric values | -### Logical operators +> To change order of arithmetic operation, use round bracket parantheses `()` +> Example: `(column1 + (column2 * column3) / (3 - column4 ))` + + +### String Functions + +| Name | Syntax | Sample | Output | +| ------- | --------------------------------| ----------------------------------| ------------------------------------------------------------------------- | +| **CONCAT** | `CONCAT(str1, [str2,...])` | `CONCAT(fName, ' ', lName)` | Concatenated string of input parameters | +| **LEFT** | `LEFT(str1, [str2,...])` | `LEFT(Column, 3)` | `n` characters from the beginning of input parameter | +| **LEN** | `LEN(str)` | `LEN(Title)` | Input parameter charachter length                       | +| **LOWER** | `LOWER(str)` | `LOWER(Title)` | Lower case converted string of input parameter | +| **MID** | `SUBTR(str, position, [count])` | `MID(Column, 3, 2)` | Alias for `SUBSTR`                                             | +| **REPEAT** | `REPEAT(str, count)` | `REPEAT(Column, 2)` | Specified copies of the input parameter string concatenated together | +| **REPLACE** | `REPLACE(str, srchStr, rplcStr)`| `REPLACE(Column, 'int', 'num')` | String, after replacing all occurrences of `srchStr` with `rplcStr` | +| **RIGHT** | `RIGHT(str, count)` | `RIGHT(Column, 3)` | `n` characters from the end of input parameter | +| **SEARCH** | `SEARCH(str, srchStr)` | `SEARCH(Column, 'str')` | Index of `srchStr` specified if found, 0 otherwise | +| **SUBSTR** | `SUBTR(str, position, [count])` | `SUBSTR(Column, 3, 2)` | Substring of length 'count' of input string, from the postition specified | +| **TRIM** | `TRIM(str)` | `TRIM(Title)` | Remove trailing and leading whitespaces from input parameter | +| **UPPER** | `UPPER(str)` | `UPPER(Title)` | Upper case converted string of input parameter | +|                       |                                                                                                       |                                                                                                       |                                                                                             | + +### Logical Operators | Operator | Sample | Description | | -------- | -------------------- | ------------------------ | @@ -82,3 +89,26 @@ menuTitle: "Formulas" | `>=` | `column1 >= column2` | Greater than or equal to | | `==` | `column1 == column2` | Equal to | | `!=` | `column1 != column2` | Not equal to | + + +### Conditional Expressions +| Name | Syntax | Sample | Output | +| ------- | -----------------------------------------------| --------------------------------------------| ------------------------------------------------------------- | +| **IF** | `IF(expr, successCase, [failCase])` | `IF(Column > 1, Value1, Value2)` | successCase if `expr` evaluates to TRUE, elseCase otherwise | +| **SWITCH** | `SWITCH(expr, [pattern, value, ..., default])` | `SWITCH(Column1, 1, 'One', 2, 'Two', '--')` | Switch case value based on `expr` output | +| **AND** | `AND(expr1, [expr2,...])` | `AND(Column > 2, Column < 10)` | TRUE if all `expr` evaluate to TRUE                                             | +| **OR** | `OR(expr1, [expr2,...])` | `OR(Column > 2, Column < 10)` | TRUE if at least one `expr` evaluates to TRUE | +|                       |                                                                                                       |                                                                                                       |                                                                                             | + + +> Logical operators, along with Numerical operators can be used to build conditional `expressions`. +> +> Example: +> **IF** (marksSecured > 80, "GradeA", "GradeB") +> **SWITCH** (quarterNumber, +> 1, 'Jan-Mar', +> 2, 'Apr-Jun', +> 3, 'Jul-Sep', +> 4, 'Oct-Dec', +> 'INVALID') +