专栏首页GreenLeavesSQL学习之计算字段的用法与解析

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

一、计算字段

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

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

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

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

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

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

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

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

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

2、拼接字段

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

select * from dbo.student

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

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、计算字段进行算术运算

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

select * from tb_order

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

select OrderId as 订单编号,price*quantity as 实际价格,price*quantity*ordercount as 总价格 from dbo.tb_order

ok,完成需求!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .Net 鉴权授权

    通过在nginx或者代码中写死token,或者通过在限制外网访问的方式已来达到安全授权的方式

    郑小超.
  • Oracle 维护数据的完整性 一 索引

    简介:索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低i/o 次数,从而提高数据的访问性能. 当我们从一张表中检索我们需要的数据是,oralce往往...

    郑小超.
  • .Net Core 认证系统源码解析

    不知不觉.Net Core已经推出到3.1了,大多数以.Net为技术栈的公司也开始逐步的切换到了Core,从业也快3年多了,一直坚持着.不管环境怎...

    郑小超.
  • HTTP 协议相关

    SpiritLing
  • 数据库增删查改联表操作的sql语句

    仙士可
  • mysql-数据的增删改

    py3study
  • MySQL SQL语句优化的10条建议

    1、将经常要用到的字段(比如经常要用这些字段来排序,或者用来做搜索),则最好将这些字段设为索引 2、字段的种类尽可能用int或者tinyint类型。另外字段尽可...

    wangxl
  • 从DataFrame自动化特征抽取的尝试

    虽然提供了很多Estimator/Transformer, 正如这篇文章所显示的,如何基于SDL+TensorFlow/SK-Learn开发NLP程序,处理的代...

    用户2936994
  • Salesforce的对象简介

    Force.com 平台提供了一个强大的数据库,有很多特性可以帮助你快速和简单的创建应用。在一个关系数据库中,数据存在表中。每个表由不同类型的列组成,例如文本,...

    臭豆腐
  • 3.MySQL记录操作

    changxin7

扫码关注云+社区

领取腾讯云代金券