可信智能计算服务 TICS-数据操作语句SELECT:参数

时间:2023-11-05 10:55:03

参数

  • FROM子句
    为SELECT声明一个或者多个源表,它包括下列元素:
    • table_name:一个现在的表或视图的名字(可以有模式修饰)。
    • alias:为那些包含别名的FROM项目取的别名。别名用于缩写或者在自连接中消除歧义(自连接中同一个表将扫描多次)。如果提供了别名,它就会完全隐藏表或者函数的实际名字。
    • sub-select:可以在FROM子句中出现SELECT。它的输出作用是为这条SELECT命令,在其生存期里创建一个临时表。这个SELECT必须用圆括弧包围。给这个SELECT语句一个别名。
  • WHERE子句

    可选子句,这里condition可以是任意生成类型为boolean的表达式。任何不满足该条件的行都会从输出中删除。

  • GROUP BY子句

    把所有在组合表达式上拥有相同值的行压缩成一行。expression可以是一个输入字段名字,或者是一个输出字段(SELECT列表项)的名字或序号,或者也可以是任意输入字段组成的表达式。在有歧义的情况下,一个GROUP BY的名字将被解释成输入字段的名字,而不是输出字段的名字。

    如果使用了聚集函数,就会对每组中的所有行进行计算并生成一个单独的值。如果出了GROUP BY子句域,SELECT列表表达式中再引用那些没有分组的字段是非法的,除非放在聚集函数里,因为对于未分组的字段,可以会返回多个数值。

  • HAVING子句

    HAVING去除了一些不满足条件的分组行,它与WHERE不同:WHERE在使用GROUP BY之前过滤出单独的行,而HAVING过滤由GROUP BY创建的行。在condition里引用的每个字段都必须无歧义地引用一个分组的行,除非引用出在一个聚集函数里。

    HAVING的出现把查询变成一个分组的查询,即使没有GROUP BY子句也是这样。所有选取的行都被认为会形成一个单一的组,而SELECT列表和HAVING子句只能从聚集函数里引用表的字段。这样的查询在HAVING条件为真的时候将发出一个行,如果为非真,则返回0行。

  • SELECT列表

    声明组成SELECT语句的输出行的表达式,可以引用在FROM子句里面计算出来的字段。通过使用子句AS output_name可以为输出字段取个别名。这个别名通常用于输出字段的显示。它也可以用于ORDER BY和GROUP BY子句中引用字段值,但是不能在WHERE或HAVING子句中使用。在WHERE或HAVING子句中必须使用表达式本身。

  • UNION子句

    一般表式为select_statement UNION [ALL] select_statement,这里的select_statement是任意没有ORDER BY、FOR UPDATE子句的SELECT语句。如果用圆括弧包围,ORDER BY可以附着在子表达式里。如果没有圆括弧,这些子句将交给UNION的结果使用,而不是给它们右边的输入表达式。缺省UNION结果不包含任何复的行,除非声明了ALL子句。同一个SELECT语句中的多个UNION操作符是从左向右计算的,除非用圆括弧进行了标识。

  • INTERSECT子句

    一般形式为select_statment INTERSECT select_statment,select_statement是任何不带ORDER BY,。INTERSECT计算涉及的SELECT语句返回的行集合的交集,不含重复的记录。多个INTERSECT计算的优先级同UNION。

  • EXCEPT子句

    一般形式为Select_statement EXCEPT,select_statement是任何没有ORDER BY、FOR UPDATE子句的SELECT表达式。EXCEPT操作符计算存在于左边SELECT语句的输出而不存在于右边SELECT语句输出的行,结果不包含任何重复的记录。多个EXCEPT计算的优先级同UNION。

  • ORDER BY子句

    根据指定的表达式对输出进行升序或降序的排序。如果根据最左边的表达式,两行结果相同,就根据下一个表达式进行比较。依此类推。如果对于所有声明的表达式都相同,则随机顺序返回。

  • DISTINCT子句

    删除输出中所有其他重复的行,仅保留一行。

support.huaweicloud.com/usermanual-tics/tics_rtd_01_0044.html