重学MYSQL之创建计算字段

数据库 2020-09-07 902

存储在数据表中的数据一般不是应用程序所需要的格式,如下方例子:

  • 需要显示公司名,同时需要显示公司地址,但这2个信息存在不同的表中
  • 省市镇和邮编存储在不同的列中,但是程序需要把它们作为一个恰当的格式字段显示出来
  • 物品订单的价格和数量,计算物品的总价
  • 根据表数据进行总数、平均数计算

1.计算字段

我希望查询时,返回的格式为name(price).

解决的办法是将两列拼接起来。在SQL中的SELECT语句中,可使用一个特殊的操作符来拼接两列。

Access和SQL Server使用+号,DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||。MySQL和MariaDB则必须使用特殊函数。

MySQL,MariaDB使用以下语句

SELECT CONCAT(name,'(', shop_price, ')') FROM goods_goods;

 效果:

多数DB的查询语句为

SELECT name + ' (' + shop_price + ')' FROM goods_goods;

或者

SELECT name || ' (' || shop_price ||  ')' FROM goods_goods;

当返回的数据中存在很多空格时,可以使用RTRIM()或LTRIM()函数完成。RTRIM(去字符串右边空格),LTRIM(去字符串左边空格)

 SELECT RTRIM(name) + ' (' + RTRIM(shop_price) + ')' FROM goods_goods;

 使用别名

SQL支持别名(alias),别名是一个字段或值的替换名,别名用AS关键字。

SELECT CONCAT(name,'(', shop_price, ')') AS name_price FROM goods_goods;

此时,名称CONCAT(name...) 被替换为name_price

说明:在很多DB中,AS关键字是可选的,不过最好使用它,这被视为一条最佳实践。

2.执行算数计算

计算订单的单项商品的总价

检索出订单2020中的商品

SELECT prod_id, quantity, item_price FROM OrderItems WHERE order_num = 2020;

quantity,数量,item_price 价格 

SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM  OrderItems WHERE order_num = 2020; 

标签:数据库

文章评论

评论列表

已有0条评论