云数据库 GaussDB-SELECT:语法格式

时间:2023-11-01 16:22:24

语法格式

  • 查询数据
 1 2 3 4 5 6 7 8 91011121314
[ WITH [ RECURSIVE ] with_query [, ...] ]SELECT [/*+ plan_hint */] [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]{ * | {expression [ [ AS ] output_name ]} [, ...] }[ FROM from_item [, ...] ][ WHERE condition ][ GROUP BY grouping_element [, ...] ][ HAVING condition [, ...] ][ WINDOW {window_name AS ( window_definition )} [, ...] ][ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ][ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ][ LIMIT { [offset,] count | ALL } ][ OFFSET start [ ROW | ROWS ] ][ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ][ {FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ]} [...] ];

condition和expression中可以使用targetlist中表达式的别名。

  • 只能同一层引用。
  • 只能引用targetlist中的别名。
  • 只能是后面的表达式引用前面的表达式。
  • 不能包含volatile函数。
  • 不能包含Window function函数。
  • 不支持在join on条件中引用别名。
  • targetlist中有多个要应用的别名则报错。
  • 其中子查询with_query为:
    12
    with_query_name [ ( column_name [, ...] ) ]    AS ( {select | values | insert | update | delete} )
  • 其中指定查询源from_item为:
    1234567
    {[ ONLY ] table_name [ * ] [ partition_clause ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ][ TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ] ]|( select ) [ AS ] alias [ ( column_alias [, ...] ) ]|with_query_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]|function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ]|function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )|from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]}
  • 其中group子句为:
    123456
    ( )| expression| ( expression [, ...] )| ROLLUP ( { expression | ( expression [, ...] ) } [, ...] )| CUBE ( { expression | ( expression [, ...] ) } [, ...] )| GROUPING SETS ( grouping_element [, ...] )
  • 其中指定分区partition_clause为:
    12
    PARTITION { ( partition_name ) |         FOR (  partition_value [, ...] ) }

    指定分区只适合普通表。

  • 其中设置排序方式nlssort_expression_clause为:
    1
    NLSSORT ( column_name, ' NLS_SORT = { SCHINESE_PINYIN_M | generic_m_ci } ' )
  • 简化版查询语法,功能相当于select * from table_name。
    1
    TABLE { ONLY {(table_name)| table_name} | table_name [ * ]};
support.huaweicloud.com/devg-opengauss/opengauss_devg_0638.html