class10_创建新的输出字段
数值计算
对单个或多个字段进行数值计算
比如:
数据库中数量的单位是股,如何转换为手(一手 = 100股)后输出?如何根据股票交易表中的单价\数量,计算出交易金额?
#数量:股转换成手
SELECT trans_id,stock_name,stock_code,volume/100 FROM t_stock_trans_dtl;
#计算交易金额:
SELECT price,volume,price*volume //←这就是交易总价 FROM t_stock_trans_dtl;
【注意:】
算数操作符优先级:*、/ >> +、-
SELECT a-b*c/d+1 == SELECT a-((b*c)/d)+1
#推荐写法:
SELECT a-((b*c)/d)+1 // 方便阅读、消除歧义
【注意算数操作符的结果】:
字段a(INT) = 1
字段b(INT) = 4
SELECT a/b :
# 在mysql中返回:0.2500
【注意:】
算数操作符仅支持数值型字段
字段拼接
多个字段合并成一个字段
例如:
将股票名称和代码组合输出;形如:按照“洪都航空(sh600316)”进行输出:
使用拼接操作符加号(+)或两个斜杠(||)
-- Access、SQL Sever:
SELECT stock_name + '\('+ stock_code +'\)' FROM t_stock_trans_dtl;
-- DB2、Oracle、Teradata
SELECT stock_name || '\('|| stock_code ||'\)' FROM t_stock_trans_dtl;
-- MySQL
SELECT CONCAT(stock_name ,'(', stock_code, ')') FROM t_stock_trans_dtl;
-- MySQL 利用函数关键字: CONCAT 实现字符的拼接;参数之间用逗号(,)分隔开
【拼接操作符仅支持字符型字段!!!】
使用别名
创建新的输出字段名
使用关键字:AS 为表达式取一个别名:
SELECT CONCAT(stock_name ,'(', stock_code, ')') AS name_code
//AS(可省略) 后面的别名直接输入不带引号,中英文都可,但是不能有分隔符;如果要带分隔符,在首位加上引号('')
FROM t_stock_trans_dtl;
【建议:】