where什么意思?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 11:46:17
where什么意思?
where什么意思?
where什么意思?
语法[ WHERE < search_condition > | < old_outer_join > ]
< old_outer_join > ::=
column_name { * = | = * } column_name参数
通过使用谓词限制结果集内返回的行.对搜索条件中可以包含的谓词数量没有限制.有关搜索条件和谓词的更多信息,请参见搜索条件.
< old_outer_join >
使用不标准的产品专用语法和 WHERE 子句指定外联接.*= 运算符用于指定左向外联接,=* 运算符用于指定右向外联接.
下例指定一个左向外联接,并在结果集内包含 Tab1 中不满足指定条件的行:
SELECT Tab1.name,Tab2.id
FROM Tab1,Tab2
WHERE Tab1.id *=Tab2.id
说明 这种语法具有潜在的二义性解释并且不标准,因此不提倡使用这种语法进行外联接.而应在 FROM 子句中指定联接.
可以通过在 FROM 子句中使用联接运算符,或通过在 WHERE 子句中使用不标准的 *= 和 =* 运算符来指定外联接.不能在同一语句中同时使用这两种方法.
GROUP BY 子句
指定用来放置输出行的组,并且如果 SELECT 子句 中包含聚合函数,则计算每组的汇总值.指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配.
说明 如果未指定 ORDER BY 子句,则使用 GROUP BY 子句不按任何特定的顺序返回组.建议始终使用 ORDER BY 子句指定具体的数据顺序.
语法[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
[ WITH { CUBE | ROLLUP } ]]参数ALL包含所有组和结果集,甚至包含那些任何行都不满足 WHERE 子句指定的搜索条件的组和结果集.如果指定了 ALL,将对组中不满足搜索条件的汇总列返回空值.不能用 CUBE 或 ROLLUP 运算符指定 ALL.
如果访问远程表的查询中有 WHERE 子句,则不支持 GROUP BY ALL 操作.
group_by_expression
是对其执行分组的表达式.group_by_expression 也称为分组列.group_by expression 可以是列或引用列的非聚合表达式.在选择列表内定义的列的别名不能用于指定分组列.
说明text、ntext 和 image 类型的列不能用于 group_by_expression.
对于不包含 CUBE 或 ROLLUP 的 GROUP BY 子句,group_by_expression 的项数受查询所涉及的 GROUP BY 列的大小、聚合列和聚合值的限制.该限制从 8,060 字节的限制开始,对保存中间查询结果所需的中间级工作表有 8,060 字节的限制.如果指定了 CUBE 或 ROLLUP,则最多只能有 10 个分组表达式.
CUBE指定在结果集内不仅包含由 GROUP BY 提供的正常行,还包含汇总行.在结果集内返回每个可能的组和子组组合的 GROUP BY 汇总行.GROUP BY 汇总行在结果中显示为 NULL,但可用来表示所有值.使用 GROUPING 函数确定结果集内的空值是否是 GROUP BY 汇总值.
ROLLUP指定在结果集内不仅包含由 GROUP BY 提供的正常行,还包含汇总行.按层次结构顺序,从组内的最低级别到最高级别汇总组.组的层次结构取决于指定分组列时所使用的顺序.更改分组列的顺序会影响在结果集内生成的行数.
重要 使用 CUBE 或 ROLLUP 时,不支持区分聚合,如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name) 和 SUM(DISTINCT column_name).