前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL学习之计算字段的用法与解析

SQL学习之计算字段的用法与解析

作者头像
郑小超.
发布2018-01-24 15:13:22
1.1K0
发布2018-01-24 15:13:22
举报
文章被收录于专栏:GreenLeavesGreenLeaves

一、计算字段

1、存储在数据库表中的数据一般不是应用程序所需要的格式。大多数情况下,数据表中的数据都需要进行二次处理。下面举几个例子。

(1)、我们需要一个字段同时显示公司名和公司地址,但这两个信息存储在不同表的列中。

(2)、省份、城市、邮政编码存储在不同的列中(大多数情况下是这样),但邮件标签打印程序需要把它们作为一个有恰当顺序、格式的字段打印出来。

(3)、列数据是大小写混合的,但报表程序需要把所有的程序按大写表示出来。

(4)、物品订单表存储物品的价格和数量,不存储每个物品的总价格,但是打印发票需要物品的总价格。上述的例子中,存储在表中的数据都不是应用程序所需要的,我们需要从数据中检索出来、并转换、计算或格式化过的数据。而不是检索出来,再到客户端进行初始化。

这时,计算字段就可以派上用场了,计算字段并不实际存在与数据表中,计算字段是运行在SELECT语句内创建的。

字段:字段基本上与列的疑似相同,经常互换使用,不过数据库列一般称为列,而术语字段通常与计算字段一起使用。

这里需要注意:只有数据库的知道SELECT语句中哪些列是实际的表列,那些列是计算字段。从客户端(如Web应用程序)来看,计算字段的数据与其他列的数据的返回方式相同。

在SQL语句内可完成许多数据转换和格式化工作都可以直接在客户端应用程序中完成。但一般来说在数据库服务器上完成这些操作比在客户端中完成要快很多!

2、拼接字段

将两个或多个字段的值拼接到一起组成一个字段。代码如下

代码语言:javascript
复制
select * from dbo.student

现在有一个需求,一个报表需要一个字段包student_deatils含学生表的姓名,年龄,性别,作为学生的基本信息,下面是解决代码:

代码语言:javascript
复制
select sname +'('+ssex+','+CONVERT(varchar,sage)+')' as student_deatils from dbo.student

ok,完成需求

注意:不同的DBMS(数据库管理系统)使用字符串拼接的操作符不同,Acesss和SQL Server使用的是'+',DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用 '||' 。MySql和MariaDB中必须使用特殊的函数。

3、计算字段进行算术运算

计算字段的另一种常见用途是对检索出的数据进行算术计算。如下代码:

代码语言:javascript
复制
select * from tb_order

现在由一个报表程序需要每个订单的订单编号、实际价格(单价*折扣)和总价格,解决代码如下:

代码语言:javascript
复制
select OrderId as 订单编号,price*quantity as 实际价格,price*quantity*ordercount as 总价格 from dbo.tb_order

ok,完成需求!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档