千家信息网

SQL 基础之order by 排序和代替变量(六)

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,使用 ORDER BY 子句排序:- ASC:升序,默认- DESC:降序ORDER BY 子句在SELECT 语句结尾,可使用列别名:1、查找工资在7000-10000之间的数字并去重,升序排序se
千家信息网最后更新 2024年11月26日SQL 基础之order by 排序和代替变量(六)

使用 ORDER BY 子句排序:

- ASC:升序,默认

- DESC:降序

ORDER BY 子句在SELECT 语句结尾,可使用列别名


1、查找工资在7000-10000之间的数字并去重,升序排序

select distinct salary from employees where salary between 7000 and 10000 order by salary;


2、查找名字、部门并按照入职日期进行升序

select last_name,department_id,hire_date from employees order by hire_date;


select last_name,department_id,hire_date from employees order by hire_date desc;

另外一种用法是按照第几列来排序,下面的例子是用到第三列

select last_name,department_id,hire_date from employees order by 3;

还有一种用法是按照多列排序,并且按照不同的方式,有个规律按照第一例的策略为先,然后才是第二例。下面的例子是按照department_id 升序为主,然后在按照第二例降序

select last_name, department_id, salary from employees order by department_id, salary desc;


3、列出有提成员工的姓名,工资和提成,按工资降序排列?

select last_name,salary,commission_pct from employees where commission_pct is not null order by 2 desc ,3 asc;


4、用替代变量,给定名字,查员工 id,工资,例如输出工资大于10000的员工信息

select last_name,employee_id,salary from employees where salary > &slary;


5、指定manager_id 的内容,并按照指定列 last_name 排序

select employee_id,last_name,salary,department_id from employees where manager_id= &mgr_num order by &order_col




替代变量


使用替代变量:

- 使用&指定变量

- 每次重复使用变量值,如果您不想提示用户的情况下,请使用&&

使用替代变量,可以替代以下内容:

- WHERE 条件

- ORDER BY 子句

- 列表达式

- 表名

- 整个 SELECT 语句

- 字符和日期替代变量要加单引号如:'first_name'


1、输出员工id


2、输入job_id 为指定内容的员工姓名、部门ID、年薪等信息

select last_name, department_id, salary*12 from employees where job_id = '&job_title';


3、指定列名进行查询和排序

select employee_id, last_name, job_id, &&column_name from employees order by &column_name ;


定义变量

1、使用 DEFINE 命令

---使用DEFINE命令创建和分配一个变量的值。

---使用UNDEFINE命令来删除一个变量

DEFINE employee_num = 200

SELECT employee_id, last_name, salary, department_id

FROM employees

WHERE employee_id = &employee_num ;

UNDEFINE employee_num


2、使用 VERIFY 命令

使用 VERIFY 命令来显示的替代变量之前和之后SQL开发人员

替换替换变量的值:

SET VERIFY ON

SELECT employee_id,last_name,salary

FROM employees

WHERE employee_id = &employee_num;

0