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;  

【建议:】

不论中文别名中是否有空格,都用引号引起来

原文地址:https://www.cnblogs.com/77-is-here/p/12800107.html