存储在数据表中的数据一般不是应用程序所需要的格式,如下方例子:
- 需要显示公司名,同时需要显示公司地址,但这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条评论