database:concat
http://blog.csdn.net/pythonkiddz/article/details/55059162
在谈计算字段之前,我们先想一想。储存在数据库中的原始表给我们提供了足够的数据,比如products表中就有商品id,商品名,供应商id,单价。但是实际生活中,比如超市收银员,他们在打单据的时候可不是直接提取原始表单打出来,而是打出一个有商品名,商品单价,和总价的新格式的表单。这个是数据库里没有的,这就是计算字段的用途,用来对原始数据进行加工,从而返回我们需要的表单数据和格式。
拼接字段
我们先进行一种叫作拼接的加工,就是把多个列的值拼成单个列。比如商品id和商品名是两列,现在我想得到形如“(商品id) 商品名”这种新格式的列。怎么做?我们用Concat()函数来拼接
SELECT Concat("(", prod_id, ")", " ", prod_name)
FROM products;
- 1
- 2
- 3
现在我们就有了新的列,只不过这种列不存在于数据库中,而是在运行SELECT语句内创建的。
注意:只有数据库知道SELECT语句中用到的列哪些是原始列,哪些是计算字段。我们客户机看到的只是返回的数据列,哪知道哪个是原始的,哪个是计算加工过的?
上面我们已经拼接了一个计算字段,但是我们发现,看上去它的名字好像很长,但实际上,这个计算字段是没有名字的。一个未命名的列肯定不是一件好事,因此我们需要用AS来取个别名。
SELECT Concat("(", prod_id, ")", " ", prod_name) AS p_name
FROM products;
- 1
- 2
- 3
注:也可以用AS来重命名原始列名
算数计算
上面介绍的拼接,现在介绍的汇总。汇总嘛,就要用到计算了。我们现在有一个订单表,里面都是客户下的订单。现在我们来看一下订单号为20005的由产品id,产品单价,产品数量组成的表单。
SELECT prod_id, quantity, item_price
FROM orderitems
WHERE order_num = 20005;
- 1
- 2
- 3
- 4
我现在想新增加一列,作为每一个产品的总价
SELECT prod_id, quantity, item_price,
quantity*item_price AS total
FROM orderitems
WHERE order_num = 20005;
- 1
- 2
- 3
- 4
- 5
SELECT测试
之前我们在正则表达式中已经提过了用SELECT进行测试,现在我们仍然可以用SELECT进行其他测试,比如计算。
SELECT 2*3;
- 1
- 2
SELECT rtrim("abc "); #去掉abc右边空格
- 1
- 2
SELECT "abc "; #不去掉
- 1
- 2
当然,还有神奇的now()函数来返回当前时间
SELECT now();
- 1
- 2
下一篇: 中老年人治疗抑郁症的药物
推荐阅读
-
Database.NET强大的数据库查询管理工具使用图文教程
-
oracle wm_concat 列转行 逗号分隔
-
微信小程序 数组中的push与concat的区别
-
oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
-
oracle合并列的函数wm_concat的使用详解
-
Sql Server 创建数据库脚本Create DATABASE
-
Microsoft JET Database Engine 错误 '80004005' 未指定的错误的完美解决方法
-
HTML5教程之html 5 本地数据库(Web Sql Database)
-
在windows下使用淘宝的nginx插件 nginx_concat_module (附下载地址)
-
create database ,drop database ,show Databases,use 数据库 ,怎么使用?