SQL 7 计算字段 - 2. 字段间的计算

人力资源不要求统计全体员工的工资指数,工资指数的计算公式为年龄与工资的乘积,这就需要将FAge和FSalary的乘积作为一个工资指数列体现到检索结果中。执行下面的SQL语句:

SELECT FNumber, FName, FAge * FSalary FROM T_Employee

 

+----------+--------+--------------+
| fnumber  | fname  | fage*fsalary |
+----------+--------+--------------+
| DEV001   | Tom    |    207500.00 |
| DEV002   | Jerry  |     64400.00 |
| DEV003   | Potter |         NULL |
| HR001    | Jane   |     98900.00 |
| HR002    | Tina   |     82500.00 |
| IT001    | Smith  |    154000.00 |
| IT002    | NULL   |     75600.00 |
| SALES001 | Timmy  |    132500.00 |
| SALES002 | Stone  |    290500.00 |
+----------+--------+--------------+

 

同样,这里的“FAge*FSalary”并不是一个世纪存在的列,但是它们在查询出来的数据中看起来是一个实际存在的字段,他们完全可以被看成一个普通字段,比如可以为此字段定别名。执行下面的SQL语句:

SELECT FNumber, FName, FAge*FSalary AS FSalaryIndex FROM T_Employee

 

+----------+--------+--------------+
| FNumber  | FName  | FSalaryIndex |
+----------+--------+--------------+
| DEV001   | Tom    |    207500.00 |
| DEV002   | Jerry  |     64400.00 |
| DEV003   | Potter |         NULL |
| HR001    | Jane   |     98900.00 |
| HR002    | Tina   |     82500.00 |
| IT001    | Smith  |    154000.00 |
| IT002    | NULL   |     75600.00 |
| SALES001 | Timmy  |    132500.00 |
| SALES002 | Stone  |    290500.00 |
+----------+--------+--------------+

 

前面提到的常量字段完全可以当做普通字段来看待,那么普通字段也可以和常量字段进行计算,甚至常量字段间也可以进行计算。比如人力资源不要求统计每个员工的工资幸福指数,工资幸福指数的计算公式为工资/(年龄-21) ,而且要求在每行数据前添加一列,这列的值等于125与521的和。我们编写下面的SQL语句:

SELECT 125 + 521, FNumber, FName, FSalary/(FAge-21) AS FHappyIndex FROM T_Employee

 

+---------+----------+--------+-------------+
| 125+521 | fnumber  | fname  | fhappyindex |
+---------+----------+--------+-------------+
|     646 | DEV001   | Tom    | 2075.000000 |
|     646 | DEV002   | Jerry  |  328.571429 |
|     646 | DEV003   | Potter |        NULL |
|     646 | HR001    | Jane   | 2150.000000 |
|     646 | HR002    | Tina   |  825.000000 |
|     646 | IT001    | Smith  |  785.714286 |
|     646 | IT002    | NULL   |  466.666667 |
|     646 | SALES001 | Timmy  | 1325.000000 |
|     646 | SALES002 | Stone  |  592.857143 |
+---------+----------+--------+-------------+

 

计算字段也可以在WHERE语句等子句或者UPDATE、DELETE中使用。比如下面的SQL语句用来检索所有工资幸福指数大于1000的员工信息:

SELECT * FROM T_Employee WHERE FSalary/(FAge-21)>1000

+----------+-------+------+---------+-------------+---------------+
| FNumber  | FName | FAge | FSalary | FSubCompany | FDepartment   |
+----------+-------+------+---------+-------------+---------------+
| DEV001   | Tom   |   25 | 8300.00 | Beijing     | Development   |
| HR001    | Jane  |   23 | 4300.00 | Beijing     | HumanResource |
| SALES001 | Timmy |   25 | 5300.00 | Beijing     | Sales         |
+----------+-------+------+---------+-------------+---------------+

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值