"WHERE子句是Oracle数据库查询中的关键部分,用于筛选特定的记录。它紧跟在FROM子句之后,帮助用户从数据表中提取满足特定条件的行。基本的SELECT语句结构包括了SELECT、FROM和可选的WHERE子句,可以按照以下格式编写:
```sql
SELECT [DISTINCT] {*, column [alias], ...}
FROM table
[WHERE condition(s)];
```
WHERE子句中的`condition(s)`是决定哪些记录被选择的关键,它可以是单个条件或多个条件的组合,如比较操作(=, <, >, <=, >=, <>)、逻辑操作(AND, OR, NOT)以及更复杂的表达式。
### ORDER BY子句的使用
ORDER BY子句用于对查询结果进行排序,默认情况下,排序顺序是升序(ASC)。如果不指定排序方式,系统将按以下默认规则排序:
- 数值:从小到大,如1到999。
- 日期:从早到晚,例如01-JAN-92排在01-JAN-95之前。
- 字符串:按字母顺序,A在前,Z在后。
- NULL值:在升序中位于最后,在降序中位于最前。
语法如下:
```sql
SELECT expr
FROM table
[WHERE condition(s)]
[ORDER BY {column, expr}[ASC|DESC]];
```
### 使用别名排序
在ORDER BY子句中,可以使用列别名作为排序条件。例如,如果数据表中有一个名为`annual_salary`的列,你可以用别名`annual_salary`进行排序。
### 多列排序
如果你需要根据多列进行排序,可以在ORDER BY子句中列出所有列,并用逗号分隔。例如,先按`column1`降序排序,再按`column2`升序排序:
```sql
SELECT *
FROM table
WHERE condition(s)
ORDER BY column1 DESC, column2 ASC;
```
这表示首先根据`column1`的降序排列,然后在同一组内按`column2`的升序排列。
通过灵活运用WHERE和ORDER BY子句,用户可以定制查询,获取满足特定需求的有序数据集。这在处理大型数据表和进行数据分析时尤其重要。"