<query_expression> [ ORDER BY {order_by_expression | column_position [ASC | DESC] } [, ...] ] [ COMPUTE { { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM } (expression) } [, ... ] [BY expression [ , ... ] ] ] [ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT } [, XMLDATA ][, ELEMENTS ][, BINARY base64 ] } ] [ OPTION (<query_hint> [ , ... ]) ] |
参数 | 意义 |
---|---|
ORDER BY | 排序 |
order_by_expression | 排序表达式 |
column_position | 整数,按第 n 列排序 |
ASC | 升序,默认 |
DESC | 降序 |
COMPUTE | 附加汇总列,参阅 行聚合函数 |
BY expression | 在结果集内生成控制中断和分类汇总 |
<query_expression>::=
{ <query_specification> | (<query_expression>)
} |
参数 | 意义 |
---|---|
UNION | 合并两个查询的记录,字段数必须相同,类型必须兼容 |
ALL | 不消除重复行,非默认 |
<query_specification>::=
SELECT |
参数 | 意义 |
---|---|
ALL | 不消除重复行,默认 |
DISTINCT | 各字段完全重复的行仅保留一个 |
TOP integer | 取前 n 条记录,如果未排序则结果不确定,可更新游标不能使用 |
PERCENT | 取前 n% 的记录,n 为 1-100 |
WITH TIES | 限定记录数时,与最后一条并列的行也被返回(因此可能 >n 条) |
GROUP BY ALL | 有些组没有满足条件的记录,但也输出空值 |
INTO | 将查询内容输出到新表,
#table 局部临时表,##table 全局临时表 临时表将存储在 tempdb 数据库中,引用方法:tempdb..#table |
WITH CUBE | 对每个字段的各个组分别汇总,最后总计 |
WITH ROLLUP | 除第一个外,同 WITH CUBE,最后总计 |
<old_outer_join> ::=
column_name { *= | =* } column_name |
参数 | 意义 |
---|---|
= | 列出两边都有,且相等的值 |
*= | 列出左边列的所有值 |
=* | 列出右边列的所有值 |
<select_list>::= { * |
参数 | 意义 |
---|---|
IDENTITYCOL | 标识列,因标识列是唯一的,可用此代替 |
ROWGUIDCOL | 全局唯一标识列,同上 |
column_alias | 列的别名,代替原列名返回 |
<table_source>::=
table_name [ [AS] table_alias ] [ WITH (
<table_hint> [ , ... ] ) ] |
参数 | 意义 |
---|---|
derived_table | 从数据库中检索行的子查询 |
<joined_table>::=
<table_source> <join_type>
<table_source> ON <search_condition> |
<join_type>::=
[ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ] |
<query_hint>::=
{ { HASH | ORDER } GROUP |
当 SELECT 语句作为子查询时: