美文网首页
SQL 计算字段

SQL 计算字段

作者: 山药鱼儿 | 来源:发表于2022-03-10 23:37 被阅读0次

计算字段

什么是计算字段呢?

当存储在数据库表中的数据不能直接满足我们的需求时,就需要我们利用已有的字段,创造出所需内容。比如:省、市、县、邮政编码存储在不同的字段中,而我们需要三者组合在一起的格式化信息;再比如订单表存储了商品的价格和数量,而我们却需要知道每类物品的总价格。

这就需要我们使用计算字段了,计算字段并不实际存在于数据库表中,而是运行时在 SELECT 语句内创建的。下面,我们来学习计算字段中常见的两种形式。

拼接字段

供应商表的信息如下:

接下来,我们将创建计算字段来将 vend_namevend_country 组合在一起。

SELECT vend_name || '(' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;

运行结果:

注 1:不同的 DBMS 实现字符串拼接的方式不同。小鱼这里使用的是 SQLite ,拼接操作符为 ||DB2、Oracle、PostgreSQL 使用的也是 ||SQL Server 使用的拼接符为 +MySQLMariaDB 使用的则是函数 Concat .

许多数据库保存填充为列宽的文本值,这就会导致字符串右侧可能出现空格,使用 RTRIM 函数可以去除字符串右侧的空格。

SELECT RTRIM(vend_name) || '(' || RTRIM(vend_country) || ')'
FROM Vendors
ORDER BY vend_name;

运行结果:

注 2:大多数 DBMS 都支持 RTRIM() 删除字符串右侧空格、LTRIM 删除字符串左侧空格和 TRIM 删除字符串两侧空格。

以上检索结果中,计算字段默认的字段名称为 SELECT 语句中创建计算字段的 SQLRTRIM(vend_name) || '(' || RTRIM(vend_country) || ')'。其实,我们可以使用 AS 关键字为字段取一个别名:

SELECT RTRIM(vend_name) || '(' || RTRIM(vend_country) || ')' AS vend_title
FROM Vendors
ORDER BY vend_name;

检索结果:

除了计算字段,当实际的列名包含不合法字符(如空格)时,也可以用 AS 为列指定别名;在原来的列名不够明确时,也会用 AS 指定别名。

执行算数计算

计算字段的另一种常见用途是对检索出来的数据进行算数运算。订单明细表如下:

接下来,假设我们需要检索订单号为 20008 的订单,购买的每种商品的单价、数量以及每种商品支付的总价。其中,单价和数量可以直接检索得到:

SELECT prod_id, quantity, item_price
FROM OrderItems
WHERE order_num=20008;

检索结果:

创建计算字段 expand_price 计算每类商品支付的总价:

SELECT prod_id, quantity, item_price, quantity*item_price AS expand_price
FROM OrderItems
WHERE order_num=20008;

检索结果:

SELECT 语句用于数据检索,但省略 FROM 子句后,却是一个测试、检验函数和计算的好工具。

用于测试计算:

SELECT 3*4;

用于测试函数:

SELECT TRIM('   mia    ');

测试输出:

SELECT CURRENT_DATE

总结

本节,我们学习了计算字段以及如何创建计算字段,期间还介绍了创建及使用别名的方法。

相关文章

  • SQL 计算字段

    计算字段 什么是计算字段呢? 当存储在数据库表中的数据不能直接满足我们的需求时,就需要我们利用已有的字段,创造出所...

  • SQL必知必会 7~13章

    注:这一系列的文章是《SQL必知必会》第四版的读书笔记。 7.创建计算字段 什么是计算字段,怎么创建计算字段,以及...

  • SQL查询语句

    SQL查询语句 创建计算字段SELECT vender_name || ' (' || vender_count...

  • 数据库学习笔记——07创建计算字段

    1 计算字段 计算字段并不实际存在于数据库表中,而是运行时在SELECT语句内创建的 2 拼接字段 SQL Ser...

  • SQL 有序计算

    什么是有序计算 使用过 SQL 的朋友对计算字段都不会陌生,比如 firstname+lastname,year(...

  • SQL学习五、计算字段

    很多时候,我们需要的数据比如详细地址,订单的总价等在数据库中可能存储在不同字段或不同表中,也可能需要对多个字段的数...

  • 【SQL】(七):创建计算字段

    本系列为自己学习时的笔记及心得体会,转载请注明出处。 以下为Mysql操作。 1、拼接字段 SELECT Conc...

  • part2. 函数| 汇总聚集

    第7章 创建计算字段 拼接字段&使用别名SQL: RTRIM():去掉字符串右边的空格LTRIM():去掉字符串左...

  • SQL必知必会学习笔记2

    SQL必知必会学习笔记2 七、创建计算字段 1.计算字段   存储在表中的数据都不是应用程序所需要的。我们需要直接...

  • PostgreSQL得出两个timestamp的秒数差值

    sql语句 => 计算两个时间的差值更新另一个时间字段

网友评论

      本文标题:SQL 计算字段

      本文链接:https://www.haomeiwen.com/subject/nrnarrtx.html