北风留影 发表于 2018-10-20 13:04:13

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

  使用 ORDER BY 子句排序:
  – ASC:升序,默认
  – DESC:降序
  ORDER BY 子句在SELECT 语句结尾,可使用列别名:
  1、查找工资在7000-10000之间的数字并去重,升序排序
  select distinct salaryfrom employees where salarybetween 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、用替代变量,给定名字,查员工>  select last_name,employee_id,salary from employeeswhere 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 employeesorder 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;


页: [1]
查看完整版本: SQL 基础之order by 排序和代替变量(六)