## selectStatement
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
selectStatement_start([selectStatement])
selectStatement_start --> selectStatement_0_0[uniqueSelectStatement]
selectStatement_0_0 --> selectStatement_0_1[setOperatorSelectStatement]
selectStatement_0_1 --> selectStatement_0_2[orderBy]
selectStatement_0_2 --> selectStatement_0_3[limitClause]
selectStatement_0_3 --> selectStatement_0_4[forClause]
selectStatement_0_4 --> selectStatement_end(( ))
```
## setOperatorSelectStatement
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
setOperatorSelectStatement_start([setOperatorSelectStatement])
setOperatorSelectStatement_start --> setOperatorSelectStatement_0_0[UNION]
setOperatorSelectStatement_0_0 --> setOperatorSelectStatement_0_1[ALL]
setOperatorSelectStatement_0_1 --> setOperatorSelectStatement_0_2[DISTINCT]
setOperatorSelectStatement_0_2 --> setOperatorSelectStatement_0_3[ON]
setOperatorSelectStatement_0_3 --> setOperatorSelectStatement_0_4[columnList]
setOperatorSelectStatement_0_4 --> setOperatorSelectStatement_0_5[MINUS_C]
setOperatorSelectStatement_0_5 --> setOperatorSelectStatement_0_6[INTERSECT]
setOperatorSelectStatement_0_6 --> setOperatorSelectStatement_0_7[uniqueSelectStatement]
setOperatorSelectStatement_0_7 --> setOperatorSelectStatement_end(( ))
```
## uniqueSelectStatement
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
uniqueSelectStatement_start([uniqueSelectStatement])
uniqueSelectStatement_start --> uniqueSelectStatement_0_0[select]
uniqueSelectStatement_0_0 --> uniqueSelectStatement_0_1[executionHints]
uniqueSelectStatement_0_1 --> uniqueSelectStatement_0_2[distinct]
uniqueSelectStatement_0_2 --> uniqueSelectStatement_0_3[topClause]
uniqueSelectStatement_0_3 --> uniqueSelectStatement_0_4[selectList]
uniqueSelectStatement_0_4 --> uniqueSelectStatement_0_5[into]
uniqueSelectStatement_0_5 --> uniqueSelectStatement_0_6[pSqlVariableList]
uniqueSelectStatement_0_6 --> uniqueSelectStatement_0_7[FROM]
uniqueSelectStatement_0_7 --> uniqueSelectStatement_0_8[dataSource]
uniqueSelectStatement_0_8 --> uniqueSelectStatement_0_9[joinStatements]
uniqueSelectStatement_0_9 --> uniqueSelectStatement_0_10[whereClause]
uniqueSelectStatement_0_10 --> uniqueSelectStatement_0_11[groupBy]
uniqueSelectStatement_0_11 --> uniqueSelectStatement_end(( ))
```
## dataSource
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
dataSource_start([dataSource])
dataSource_start --> dataSource_0_0[tableOrFunctionSpec]
dataSource_0_0 --> dataSource_0_1[embeddedSelect]
dataSource_0_1 --> dataSource_0_2[xmlTableSpec]
dataSource_0_2 --> dataSource_0_3[csvTableSpec]
dataSource_0_3 --> dataSource_0_4[jsonTableSpec]
dataSource_0_4 --> dataSource_0_5[ndjsonTableSpec]
dataSource_0_5 --> dataSource_0_6[excelTableSpec]
dataSource_0_6 --> dataSource_0_7[htmlTableSpec]
dataSource_0_7 --> dataSource_0_8[stringSplitSpec]
dataSource_0_8 --> dataSource_0_9[internetTableSpec]
dataSource_0_9 --> dataSource_0_10[aliased]
dataSource_0_10 --> dataSource_0_11[pivotClause]
dataSource_0_11 --> dataSource_end(( ))
```
## select
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> select
select -->| | SELECT
SELECT --> End(( ))
```
## distinct
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> distinct
distinct -->| | DISTINCT
DISTINCT --> End(( ))
```
## topClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
topClause_start([topClause])
topClause_start --> topClause_0_0[TOP]
topClause_0_0 --> topClause_0_1[numericConstant]
topClause_0_1 --> topClause_end(( ))
```
## limitClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
limitClause_start([limitClause])
limitClause_start --> limitClause_0_0[LIMIT]
limitClause_0_0 --> limitClause_0_1[numericConstant]
limitClause_0_1 --> limitClause_end(( ))
```
## forClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
forClause_start([forClause])
forClause_start --> forClause_0_0[FOR]
forClause_0_0 --> forClause_0_1[forCsvClause]
forClause_0_1 --> forClause_0_2[forExcelClause]
forClause_0_2 --> forClause_0_3[forJsonClause]
forClause_0_3 --> forClause_0_4[forXmlClause]
forClause_0_4 --> forClause_end(( ))
```
## forCsvClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
forCsvClause_start([forCsvClause])
forCsvClause_start --> forCsvClause_0_0[CSV]
forCsvClause_0_0 --> forCsvClause_0_1[COMMA]
forCsvClause_0_1 --> forCsvClause_0_2[INCLUDE]
forCsvClause_0_2 --> forCsvClause_0_3[TECHNICAL]
forCsvClause_0_3 --> forCsvClause_0_4[EXCLUDE]
forCsvClause_0_4 --> forCsvClause_0_5[HEADERS]
forCsvClause_0_5 --> forCsvClause_0_6[COMMA]
forCsvClause_0_6 --> forCsvClause_0_7[ROW]
forCsvClause_0_7 --> forCsvClause_0_8[DELIMITER]
forCsvClause_0_8 --> forCsvClause_0_9[stringConstant]
forCsvClause_0_9 --> forCsvClause_0_10[COMMA]
forCsvClause_0_10 --> forCsvClause_0_11[COLUMN]
forCsvClause_0_11 --> forCsvClause_0_12[DELIMITER]
forCsvClause_0_12 --> forCsvClause_0_13[stringConstant]
forCsvClause_0_13 --> forCsvClause_0_14[COMMA]
forCsvClause_0_14 --> forCsvClause_0_15[QUOTING]
forCsvClause_0_15 --> forCsvClause_0_16[CHARACTER]
forCsvClause_0_16 --> forCsvClause_0_17[stringConstant]
forCsvClause_0_17 --> forCsvClause_0_18[COMMA]
forCsvClause_0_18 --> forCsvClause_0_19[ESCAPED]
forCsvClause_0_19 --> forCsvClause_0_20[QUOTING]
forCsvClause_0_20 --> forCsvClause_0_21[CHARACTER]
forCsvClause_0_21 --> forCsvClause_0_22[stringConstant]
forCsvClause_0_22 --> forCsvClause_0_23[COMMA]
forCsvClause_0_23 --> forCsvClause_0_24[OUTPUT]
forCsvClause_0_24 --> forCsvClause_0_25[PER]
forCsvClause_0_25 --> forCsvClause_0_26[numericConstant]
forCsvClause_0_26 --> forCsvClause_0_27[ROW]
forCsvClause_0_27 --> forCsvClause_0_28[ROWS]
forCsvClause_0_28 --> forCsvClause_0_29[REPEAT]
forCsvClause_0_29 --> forCsvClause_0_30[HEADERS]
forCsvClause_0_30 --> forCsvClause_end(( ))
```
## forExcelClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
forExcelClause_start([forExcelClause])
forExcelClause_start --> forExcelClause_0_0[EXCEL]
forExcelClause_0_0 --> forExcelClause_0_1[COMMA]
forExcelClause_0_1 --> forExcelClause_0_2[INCLUDE]
forExcelClause_0_2 --> forExcelClause_0_3[TECHNICAL]
forExcelClause_0_3 --> forExcelClause_0_4[EXCLUDE]
forExcelClause_0_4 --> forExcelClause_0_5[HEADERS]
forExcelClause_0_5 --> forExcelClause_end(( ))
```
## forJsonClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
forJsonClause_start([forJsonClause])
forJsonClause_start --> forJsonClause_0_0[JSON]
forJsonClause_0_0 --> forJsonClause_0_1[AUTO]
forJsonClause_0_1 --> forJsonClause_0_2[PATH]
forJsonClause_0_2 --> forJsonClause_0_3[COMMA]
forJsonClause_0_3 --> forJsonClause_0_4[ROOT]
forJsonClause_0_4 --> forJsonClause_0_5[parenthesisOpen]
forJsonClause_0_5 --> forJsonClause_0_6[stringConstant]
forJsonClause_0_6 --> forJsonClause_0_7[parenthesisClose]
forJsonClause_0_7 --> forJsonClause_0_8[COMMA]
forJsonClause_0_8 --> forJsonClause_0_9[INCLUDE_NULL_VALUES]
forJsonClause_0_9 --> forJsonClause_0_10[COMMA]
forJsonClause_0_10 --> forJsonClause_0_11[WITHOUT_ARRAY_WRAPPER]
forJsonClause_0_11 --> forJsonClause_0_12[COMMA]
forJsonClause_0_12 --> forJsonClause_0_13[OUTPUT]
forJsonClause_0_13 --> forJsonClause_0_14[PER]
forJsonClause_0_14 --> forJsonClause_0_15[numericConstant]
forJsonClause_0_15 --> forJsonClause_0_16[ROW]
forJsonClause_0_16 --> forJsonClause_0_17[ROWS]
forJsonClause_0_17 --> forJsonClause_end(( ))
```
## forXmlClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
forXmlClause_start([forXmlClause])
forXmlClause_start --> forXmlClause_0_0[XML]
forXmlClause_0_0 --> forXmlClause_0_1[RAW]
forXmlClause_0_1 --> forXmlClause_0_2[parenthesisOpen]
forXmlClause_0_2 --> forXmlClause_0_3[stringConstant]
forXmlClause_0_3 --> forXmlClause_0_4[parenthesisClose]
forXmlClause_0_4 --> forXmlClause_0_5[AUTO]
forXmlClause_0_5 --> forXmlClause_0_6[forXmlClauseCommonDirectives]
forXmlClause_0_6 --> forXmlClause_0_7[COMMA]
forXmlClause_0_7 --> forXmlClause_0_8[XMLDATA]
forXmlClause_0_8 --> forXmlClause_0_9[XMLSCHEMA]
forXmlClause_0_9 --> forXmlClause_0_10[stringConstant]
forXmlClause_0_10 --> forXmlClause_0_11[PATH]
forXmlClause_0_11 --> forXmlClause_0_12[parenthesisOpen]
forXmlClause_0_12 --> forXmlClause_0_13[stringConstant]
forXmlClause_0_13 --> forXmlClause_0_14[parenthesisClose]
forXmlClause_0_14 --> forXmlClause_0_15[forXmlClauseCommonDirectives]
forXmlClause_0_15 --> forXmlClause_0_16[COMMA]
forXmlClause_0_16 --> forXmlClause_0_17[ELEMENTS]
forXmlClause_0_17 --> forXmlClause_0_18[XSINIL]
forXmlClause_0_18 --> forXmlClause_0_19[ABSENT]
forXmlClause_0_19 --> forXmlClause_0_20[EXPLICIT]
forXmlClause_0_20 --> forXmlClause_0_21[forXmlClauseCommonDirectives]
forXmlClause_0_21 --> forXmlClause_end(( ))
```
## forXmlClauseCommonDirectives
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
forXmlClauseCommonDirectives_start([forXmlClauseCommonDirectives])
forXmlClauseCommonDirectives_start --> forXmlClauseCommonDirectives_0_0[COMMA]
forXmlClauseCommonDirectives_0_0 --> forXmlClauseCommonDirectives_0_1[BINARY]
forXmlClauseCommonDirectives_0_1 --> forXmlClauseCommonDirectives_0_2[BASE_64]
forXmlClauseCommonDirectives_0_2 --> forXmlClauseCommonDirectives_0_3[COMMA]
forXmlClauseCommonDirectives_0_3 --> forXmlClauseCommonDirectives_0_4[TYPE]
forXmlClauseCommonDirectives_0_4 --> forXmlClauseCommonDirectives_0_5[COMMA]
forXmlClauseCommonDirectives_0_5 --> forXmlClauseCommonDirectives_0_6[ROOT]
forXmlClauseCommonDirectives_0_6 --> forXmlClauseCommonDirectives_0_7[parenthesisOpen]
forXmlClauseCommonDirectives_0_7 --> forXmlClauseCommonDirectives_0_8[stringConstant]
forXmlClauseCommonDirectives_0_8 --> forXmlClauseCommonDirectives_0_9[parenthesisClose]
forXmlClauseCommonDirectives_0_9 --> forXmlClauseCommonDirectives_end(( ))
```
## embeddedSelect
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
embeddedSelect_start([embeddedSelect])
embeddedSelect_start --> embeddedSelect_0_0[parenthesisOpen]
embeddedSelect_0_0 --> embeddedSelect_0_1[selectStatement]
embeddedSelect_0_1 --> embeddedSelect_0_2[parenthesisClose]
embeddedSelect_0_2 --> embeddedSelect_end(( ))
```
## tableSpec
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
tableSpec_start([tableSpec])
tableSpec_start --> tableSpec_0_0[fullTableIdentifier]
tableSpec_0_0 --> tableSpec_0_1[distributedAliasDirective]
tableSpec_0_1 --> tableSpec_end(( ))
```
## tableOrFunctionSpec
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
tableOrFunctionSpec_start([tableOrFunctionSpec])
tableOrFunctionSpec_start --> tableOrFunctionSpec_0_0[fullTableIdentifier]
tableOrFunctionSpec_0_0 --> tableOrFunctionSpec_0_1[distributedAliasDirective]
tableOrFunctionSpec_0_1 --> tableOrFunctionSpec_0_2[tableFunctionSpec]
tableOrFunctionSpec_0_2 --> tableOrFunctionSpec_0_3[distributedAliasDirective]
tableOrFunctionSpec_0_3 --> tableOrFunctionSpec_end(( ))
```
## tableFunctionSpec
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
tableFunctionSpec_start([tableFunctionSpec])
tableFunctionSpec_start --> tableFunctionSpec_0_0[parenthesisOpen]
tableFunctionSpec_0_0 --> tableFunctionSpec_0_1[numberedOrNamedExpressionList]
tableFunctionSpec_0_1 --> tableFunctionSpec_0_2[parenthesisClose]
tableFunctionSpec_0_2 --> tableFunctionSpec_end(( ))
```
## numberedOrNamedExpressionList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
numberedOrNamedExpressionList_start([numberedOrNamedExpressionList])
numberedOrNamedExpressionList_start --> numberedOrNamedExpressionList_0_0[expression]
numberedOrNamedExpressionList_0_0 --> numberedOrNamedExpressionList_0_1[COMMA]
numberedOrNamedExpressionList_0_1 --> numberedOrNamedExpressionList_0_2[expression]
numberedOrNamedExpressionList_0_2 --> numberedOrNamedExpressionList_0_3[namedExpression]
numberedOrNamedExpressionList_0_3 --> numberedOrNamedExpressionList_0_4[COMMA]
numberedOrNamedExpressionList_0_4 --> numberedOrNamedExpressionList_0_5[namedExpression]
numberedOrNamedExpressionList_0_5 --> numberedOrNamedExpressionList_end(( ))
```
## expressionList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
expressionList_start([expressionList])
expressionList_start --> expressionList_0_0[expression]
expressionList_0_0 --> expressionList_0_1[COMMA]
expressionList_0_1 --> expressionList_0_2[expression]
expressionList_0_2 --> expressionList_end(( ))
```
## namedExpressionList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
namedExpressionList_start([namedExpressionList])
namedExpressionList_start --> namedExpressionList_0_0[namedExpression]
namedExpressionList_0_0 --> namedExpressionList_0_1[COMMA]
namedExpressionList_0_1 --> namedExpressionList_0_2[namedExpression]
namedExpressionList_0_2 --> namedExpressionList_end(( ))
```
## namedExpression
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
namedExpression_start([namedExpression])
namedExpression_start --> namedExpression_0_0[identifier]
namedExpression_0_0 --> namedExpression_0_1[ASSOCIATION_OPERATOR]
namedExpression_0_1 --> namedExpression_0_2[expression]
namedExpression_0_2 --> namedExpression_end(( ))
```
## distributedAliasDirective
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
distributedAliasDirective_start([distributedAliasDirective])
distributedAliasDirective_start --> distributedAliasDirective_0_0[AT]
distributedAliasDirective_0_0 --> distributedAliasDirective_0_1[dataContainerAlias]
distributedAliasDirective_0_1 --> distributedAliasDirective_end(( ))
```
## dataContainerAlias
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> dataContainerAlias
dataContainerAlias -->| | identifier
identifier --> End(( ))
```
## passingSourceOrPathExpression
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
passingSourceOrPathExpression_start([passingSourceOrPathExpression])
passingSourceOrPathExpression_start --> passingSourceOrPathExpression_0_0[PASSING]
passingSourceOrPathExpression_0_0 --> passingSourceOrPathExpression_0_1[FILE]
passingSourceOrPathExpression_0_1 --> passingSourceOrPathExpression_0_2[expression]
passingSourceOrPathExpression_0_2 --> passingSourceOrPathExpression_end(( ))
```
## groupBy
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
groupBy_start([groupBy])
groupBy_start --> groupBy_0_0[GROUP]
groupBy_0_0 --> groupBy_0_1[BY]
groupBy_0_1 --> groupBy_0_2[columnList]
groupBy_0_2 --> groupBy_end(( ))
```
## orderBy
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
orderBy_start([orderBy])
orderBy_start --> orderBy_0_0[ORDER]
orderBy_0_0 --> orderBy_0_1[BY]
orderBy_0_1 --> orderBy_0_2[sortedColumnList]
orderBy_0_2 --> orderBy_end(( ))
```
## pivotClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
pivotClause_start([pivotClause])
pivotClause_start --> pivotClause_0_0[PIVOT]
pivotClause_0_0 --> pivotClause_0_1[parenthesisOpen]
pivotClause_0_1 --> pivotClause_0_2[aggregateFunction]
pivotClause_0_2 --> pivotClause_0_3[FOR]
pivotClause_0_3 --> pivotClause_0_4[column]
pivotClause_0_4 --> pivotClause_0_5[IN]
pivotClause_0_5 --> pivotClause_0_6[parenthesisOpen]
pivotClause_0_6 --> pivotClause_0_7[columnNoAliasList]
pivotClause_0_7 --> pivotClause_0_8[parenthesisClose]
pivotClause_0_8 --> pivotClause_0_9[parenthesisClose]
pivotClause_0_9 --> pivotClause_0_10[aliased]
pivotClause_0_10 --> pivotClause_end(( ))
```
## sortDirection
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> sortDirection
sortDirection -->| | asc
asc --> End(( ))
sortDirection -->| | desc
desc --> End(( ))
```
## columnList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
columnList_start([columnList])
columnList_start --> columnList_0_0[column]
columnList_0_0 --> columnList_0_1[COMMA]
columnList_0_1 --> columnList_0_2[column]
columnList_0_2 --> columnList_end(( ))
```
## sortedColumnList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
sortedColumnList_start([sortedColumnList])
sortedColumnList_start --> sortedColumnList_0_0[sortedColumn]
sortedColumnList_0_0 --> sortedColumnList_0_1[COMMA]
sortedColumnList_0_1 --> sortedColumnList_0_2[sortedColumn]
sortedColumnList_0_2 --> sortedColumnList_end(( ))
```
## sortedColumn
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
sortedColumn_start([sortedColumn])
sortedColumn_start --> sortedColumn_0_0[column]
sortedColumn_0_0 --> sortedColumn_0_1[sortDirection]
sortedColumn_0_1 --> sortedColumn_end(( ))
```
## column
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
column_start([column])
column_start --> column_0_0[identifier]
column_0_0 --> column_0_1[DOT]
column_0_1 --> column_0_2[identifier]
column_0_2 --> column_end(( ))
```
## columnNoAliasList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
columnNoAliasList_start([columnNoAliasList])
columnNoAliasList_start --> columnNoAliasList_0_0[columnNoAlias]
columnNoAliasList_0_0 --> columnNoAliasList_0_1[COMMA]
columnNoAliasList_0_1 --> columnNoAliasList_0_2[columnNoAlias]
columnNoAliasList_0_2 --> columnNoAliasList_end(( ))
```
## columnNoAlias
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> columnNoAlias
columnNoAlias -->| | identifier
identifier --> End(( ))
```
## whereClause
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
whereClause_start([whereClause])
whereClause_start --> whereClause_0_0[WHERE]
whereClause_0_0 --> whereClause_0_1[expression]
whereClause_0_1 --> whereClause_end(( ))
```
## joinStatements
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> joinStatements
joinStatements -->| | joinStatement
joinStatement --> End(( ))
```
## joinStatement
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
joinStatement_start([joinStatement])
joinStatement_start --> joinStatement_0_0[joinCategory]
joinStatement_0_0 --> joinStatement_0_1[join]
joinStatement_0_1 --> joinStatement_0_2[dataSource]
joinStatement_0_2 --> joinStatement_0_3[joinConditions]
joinStatement_0_3 --> joinStatement_end(( ))
```
## joinCategory
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
joinCategory_start([joinCategory])
joinCategory_start --> joinCategory_0_0[inner]
joinCategory_0_0 --> joinCategory_0_1[joinSubCategory]
joinCategory_0_1 --> joinCategory_0_2[outer]
joinCategory_0_2 --> joinCategory_0_3[cross]
joinCategory_0_3 --> joinCategory_end(( ))
```
## joinSubCategory
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> joinSubCategory
joinSubCategory -->| | left
left --> End(( ))
joinSubCategory -->| | right
right --> End(( ))
joinSubCategory -->| | full
full --> End(( ))
```
## join
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> join
join -->| | JOIN
JOIN --> End(( ))
```
## inner
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> inner
inner -->| | INNER
INNER --> End(( ))
```
## outer
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> outer
outer -->| | OUTER
OUTER --> End(( ))
```
## left
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> left
left -->| | LEFT
LEFT --> End(( ))
```
## right
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> right
right -->| | RIGHT
RIGHT --> End(( ))
```
## full
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> full
full -->| | FULL
FULL --> End(( ))
```
## cross
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> cross
cross -->| | CROSS
CROSS --> End(( ))
```
## asc
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> asc
asc -->| | ASC
ASC --> End(( ))
```
## desc
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> desc
desc -->| | DESC
DESC --> End(( ))
```
## joinConditions
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
joinConditions_start([joinConditions])
joinConditions_start --> joinConditions_0_0[ON]
joinConditions_0_0 --> joinConditions_0_1[expression]
joinConditions_0_1 --> joinConditions_end(( ))
```
## selectList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
selectList_start([selectList])
selectList_start --> selectList_0_0[selectPart]
selectList_0_0 --> selectList_0_1[COMMA]
selectList_0_1 --> selectList_0_2[selectPart]
selectList_0_2 --> selectList_end(( ))
```
## selectPart
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
selectPart_start([selectPart])
selectPart_start --> selectPart_0_0[part]
selectPart_0_0 --> selectPart_0_1[aliased]
selectPart_0_1 --> selectPart_0_2[labeled]
selectPart_0_2 --> selectPart_end(( ))
```
## aliased
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
aliased_start([aliased])
aliased_start --> aliased_0_0[AS]
aliased_0_0 --> aliased_0_1[alias]
aliased_0_1 --> aliased_end(( ))
```
## labeled
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
labeled_start([labeled])
labeled_start --> labeled_0_0[LABEL]
labeled_0_0 --> labeled_0_1[stringConstant]
labeled_0_1 --> labeled_end(( ))
```
## part
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> part
part -->| | expression
expression --> End(( ))
part -->| | aggregateFunction
aggregateFunction --> End(( ))
part -->| | allColumnsSpec
allColumnsSpec --> End(( ))
```
## allColumnsSpec
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
allColumnsSpec_start([allColumnsSpec])
allColumnsSpec_start --> allColumnsSpec_0_0[allColumnsSpecId]
allColumnsSpec_0_0 --> allColumnsSpec_0_1[allColumnsSpecColumnNamePrefix]
allColumnsSpec_0_1 --> allColumnsSpec_0_2[allColumnsSpecColumnNamePostfix]
allColumnsSpec_0_2 --> allColumnsSpec_0_3[allColumnsSpecLabelPrefix]
allColumnsSpec_0_3 --> allColumnsSpec_0_4[allColumnsSpecLabelPostfix]
allColumnsSpec_0_4 --> allColumnsSpec_end(( ))
```
## allColumnsSpecId
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
allColumnsSpecId_start([allColumnsSpecId])
allColumnsSpecId_start --> allColumnsSpecId_0_0[alias]
allColumnsSpecId_0_0 --> allColumnsSpecId_0_1[DOT]
allColumnsSpecId_0_1 --> allColumnsSpecId_0_2[ASTERIX]
allColumnsSpecId_0_2 --> allColumnsSpecId_0_3[EXCEPT]
allColumnsSpecId_0_3 --> allColumnsSpecId_0_4[columnList]
allColumnsSpecId_0_4 --> allColumnsSpecId_end(( ))
```
## allColumnsSpecColumnNamePrefix
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
allColumnsSpecColumnNamePrefix_start([allColumnsSpecColumnNamePrefix])
allColumnsSpecColumnNamePrefix_start --> allColumnsSpecColumnNamePrefix_0_0[PREFIX]
allColumnsSpecColumnNamePrefix_0_0 --> allColumnsSpecColumnNamePrefix_0_1[WITH]
allColumnsSpecColumnNamePrefix_0_1 --> allColumnsSpecColumnNamePrefix_0_2[stringConstant]
allColumnsSpecColumnNamePrefix_0_2 --> allColumnsSpecColumnNamePrefix_end(( ))
```
## allColumnsSpecColumnNamePostfix
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
allColumnsSpecColumnNamePostfix_start([allColumnsSpecColumnNamePostfix])
allColumnsSpecColumnNamePostfix_start --> allColumnsSpecColumnNamePostfix_0_0[POSTFIX]
allColumnsSpecColumnNamePostfix_0_0 --> allColumnsSpecColumnNamePostfix_0_1[WITH]
allColumnsSpecColumnNamePostfix_0_1 --> allColumnsSpecColumnNamePostfix_0_2[stringConstant]
allColumnsSpecColumnNamePostfix_0_2 --> allColumnsSpecColumnNamePostfix_end(( ))
```
## allColumnsSpecLabelPrefix
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
allColumnsSpecLabelPrefix_start([allColumnsSpecLabelPrefix])
allColumnsSpecLabelPrefix_start --> allColumnsSpecLabelPrefix_0_0[LABEL]
allColumnsSpecLabelPrefix_0_0 --> allColumnsSpecLabelPrefix_0_1[PREFIX]
allColumnsSpecLabelPrefix_0_1 --> allColumnsSpecLabelPrefix_0_2[WITH]
allColumnsSpecLabelPrefix_0_2 --> allColumnsSpecLabelPrefix_0_3[stringConstant]
allColumnsSpecLabelPrefix_0_3 --> allColumnsSpecLabelPrefix_end(( ))
```
## allColumnsSpecLabelPostfix
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
allColumnsSpecLabelPostfix_start([allColumnsSpecLabelPostfix])
allColumnsSpecLabelPostfix_start --> allColumnsSpecLabelPostfix_0_0[LABEL]
allColumnsSpecLabelPostfix_0_0 --> allColumnsSpecLabelPostfix_0_1[POSTFIX]
allColumnsSpecLabelPostfix_0_1 --> allColumnsSpecLabelPostfix_0_2[WITH]
allColumnsSpecLabelPostfix_0_2 --> allColumnsSpecLabelPostfix_0_3[stringConstant]
allColumnsSpecLabelPostfix_0_3 --> allColumnsSpecLabelPostfix_end(( ))
```
## orReplace
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
orReplace_start([orReplace])
orReplace_start --> orReplace_0_0[OR]
orReplace_0_0 --> orReplace_0_1[REPLACE]
orReplace_0_1 --> orReplace_end(( ))
```
## partitionIdentifiersList
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
partitionIdentifiersList_start([partitionIdentifiersList])
partitionIdentifiersList_start --> partitionIdentifiersList_0_0[partitionIdentifierWithAlias]
partitionIdentifiersList_0_0 --> partitionIdentifiersList_0_1[COMMA]
partitionIdentifiersList_0_1 --> partitionIdentifiersList_0_2[partitionIdentifierWithAlias]
partitionIdentifiersList_0_2 --> partitionIdentifiersList_end(( ))
```
## partitionIdentifier
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> partitionIdentifier
partitionIdentifier -->| | parameterExpression
parameterExpression --> End(( ))
partitionIdentifier -->| | stringConstant
stringConstant --> End(( ))
partitionIdentifier -->| | numericConstant
numericConstant --> End(( ))
partitionIdentifier -->| | identifier
identifier --> End(( ))
partitionIdentifier -->| | ALL
ALL --> End(( ))
partitionIdentifier -->| | DEFAULT
DEFAULT --> End(( ))
```
## partitionIdentifierWithAlias
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
partitionIdentifierWithAlias_start([partitionIdentifierWithAlias])
partitionIdentifierWithAlias_start --> partitionIdentifierWithAlias_0_0[partitionIdentifier]
partitionIdentifierWithAlias_0_0 --> partitionIdentifierWithAlias_0_1[distributedAliasDirective]
partitionIdentifierWithAlias_0_1 --> partitionIdentifierWithAlias_end(( ))
```
## partitionSimpleIdentifier
```mermaid
%%{init: {
'theme': 'base',
'themeVariables': {
'fontSize': '11px',
'nodePadding': '1',
'nodeBorder': '1',
'lineWidth': '0.8',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start(( )) --> partitionSimpleIdentifier
partitionSimpleIdentifier -->| | numericConstant
numericConstant --> End(( ))
partitionSimpleIdentifier -->| | identifier
identifier --> End(( ))
```