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,完成需求!

时间: 2024-10-10 07:06:05

SQL学习之计算字段的用法与解析的相关文章

SQL语句之-计算字段

五.计算字段 1.拼接字段 MySQL:使用函数concat SqlServer:使用加号+ oracle:使用|| SELECT CONCAT(vend_name,'(',vend_country,')') FROM vendors ORDER BY vend_name 使用别名AS SELECT CONCAT(vend_name,'(',vend_country,')')  AS vend_title FROM vendors ORDER BY vend_name 2.算数计算:支持+.-.

【python学习】今天看看学习 %d ,%s, %f 等用法,下面的学习例子是说输入名字、年龄、工作,工资。并给出65岁退休还差多久的计算

今天看看学习 %d ,%s, %f 等用法.%d 是占位符整数,%s 是占位符,%f 是浮点数.下面的学习例子是说输入名字.年龄.工作,工资.并给出65岁退休还差多久的计算.重点在于用占位符来print (msg).后面附更多的备用. # __author__:"Gabriel Jason" # date: 2017-11-05 name = input("Name:") age = int(input("Age:")) job = input(

SQL必知必会 -------- 通配符、计算字段、函数

1.LIKE操作符 1.1百分号(%)通配符 SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%' 此例子使用了搜索模式'Fish%'.在执行这条子句时,将检索任意以Fish起头的词.%告诉DBMS接受Fish之后的任意字符,不管它有多少字符. 说明:区分大小写根据DBMS的不同及其配置,搜索可以是区分大小写的.如果区分大小写,则'fish%'与Fish bean bag toy就不匹配. 通配符可在搜索模式中的

6.计算字段 ---SQL

提示:客户端与服务器的格式在SQL语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成.但一般来说,在数据库服务器上完成这些操作比在客户端中完成要快得多. 一.拼接字段 拼接(concatenate)将值联结到一起(将一个值附加到另一个值)构成单个值.解决办法是把两个列拼接起来.在SQL中的SELECT语句中,可使用一个特殊的操作符来拼接两个列.根据你所使用的DBMS,此操作符可用加号(+)或两个竖杠(||)表示.在MySQL和MariaDB中,必须使用特殊的函数.说明:是+还是|

(013)每日SQL学习:确定两个日期之间的工作日天数和计算一年周内各日期次数

1.确定两个日期之间的工作日天数 --确定两个日期之间的工作日天数with x0 as (select to_date('2018-01-01','yyyy-mm-dd') as 日期 from dual union all select to_date('2018-01-15','yyyy-mm-dd') as 日期 from dual ), x1 as --日期并列显示 (select min (日期) 开始日期,max(日期) 结束日期 from x0 ), x2 as --日期之间的天数

TERADATA SQL学习随笔<一>

最近在TERADATA环境学习SQL.在这里记录一下学习中查过的知识点,作为备案. 目录: 关于SQL学习及所用在线数据库 表联合 (join) SQL子查询 在select时创建新字段 (as, case when) 数据分组 (group by + 聚合函数count, sum, avg等) 利用over (partition by)进行数据分组并创建新字段 样本选择 1.关于SQL学习及所用在线数据库 之前有看过一些SQL学习的书.但如果从学习效率来说,跟着书学习SQL,不如直接看生产环境

SQL学习之使用常用函数处理数据

一.在介绍使用函数处理数据前,先说下使用DBMS(数据库管理系统)处理数据所带来的问题! 1.与几乎所有的DBMS都同等的支持SQL语句(如SELECT)不同,每一个DBMS都有特定的函数,事实上,只有少数几个函数被所有主要的DBMS等同的支持. 比如,像提取字符串的组成部分,ACESS使用MID();DB2.Oracle.Postgre和SQLite使用SUBSTR(),而MySQL和SQL SERVER使用SUBSTRING(); 比如,数据类型的转换,Access和Oracle使用多个函数

sql 学习笔记 文档

以下内容来自 3c   school 1:Sql 分为两个部分: 6 2:查询 7 3:插入: 9 4:数据库更新 UPDATE 9 5:删除 DELETE 10 6:Sql TOP 子句: 10 7: SQL LIKE 操作符 11 8:SQL 通配符 13 2 使用 % 通配符 13 2 使用 _ 通配符 14 例子 1 14 例子 2 14 2 使用 [charlist] 通配符 15 例子 1 15 例子 2 15 9:IN 操作符 15 10: BETWEEN 操作符 16 11:Al

2019-05-21 SQL学习

SQL学习 新建模板小书匠 sqlserver 动态计算 sqlserver decimal转为varchar mysql 组内分组排序 sqlserver 动态计算 2019年02月28日 18时56分22秒 --模拟数据 IF OBJECT_ID('tempdb..#t')>0 DROP TABLE #t SELECT * INTO #t FROM ( SELECT '1' id,2030 g,265 h, 830 k,'g*h+h*k' gs,0 tt UNION ALL SELECT '