数据库SQL字段计算相关

一、计算字段

字段(field)基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。

重要的是要注意到,只有数据库知道SELECT语句中哪些列是实际的列表,哪些列是计算字段。从客户机(如应用程序)的角度来看,计算字段的数据是与其它列的数据相同的方式返回的。

 

客户机与服务器的格式:可在SQL语句内完成的许多转换和格式化工作都可以直接在客户机应用程序内完成。但一般来说,在数据库服务器上完成这些操作比在客户机中完成要快的多,因为DBMS是设计来快速有效地完成这种处理的。

 

二、拼接字段

 

拼接(concatenate)将值联结到一起构成单个值。

 

有时候我们需要将两个列拼起来,获得格式化后的名称包含其他信息,所以在SQL中的SELECT语句中,可以使用一个特殊的操作符来拼接两个列。此操作符可用(+)或两个竖杠(||)表示。

 

输入:SELECT vend_name +'('+vend_country+')'

             FROM Vendors

             ORDER BY vend_name;

 

输入:SELECT vend_name ||'('||vend_country||')'

             FROM Vendors

             ORDER BY vend_name;

 

由于有时候拼接起来以后会存在空格,所以可以使用RTRIM()函数来去掉这些空格。

 

输入:SELECT RTRIM(vend_name) +'('+RTRIM(vend_country)+')'

             FROM Vendors

             ORDER BY vend_name;

 

输入:SELECT RTRIM(vend_name) ||'('||RTRIM(vend_country)||')'

             FROM Vendors

             ORDER BY vend_name;

 

TRIM函数:大多数DBMS支持RTRIM()去掉右边的空格、LTRIM()去掉左边的空格以及TRIM()去掉左右两边的空格。

 

&&使用别名:从前面的输出可以看到,SELECT语句拼接字段后出现了新的计算列,那么列的名字是什么呢?它并没有名字,只是一个值。为了解决这个问题,SQL支持列别名。列别名(alias)是一个字段或值的替换名。别名用AS关键字赋予。

 

输入:SELECT RTRIM(vend_name) +'('+RTRIM(vend_country)+')'

             AS vend_title

             FROM Vendors

             ORDER BY vend_name;

 

分析:这里的SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本AS vend_title。它指示SQL创建一个包含指定计算的名为vend_title的计算字段。以后输出的计算字段就可以用这个列名来直接引用。

 

 

三、执行算数计算

计算字段的另一个常见用途是对检索的数据进行算数计算。

 

输入:SELECT prod_id,quantity,item_price

      FROM Products

      WHERE order_num=2008;

 

这里的SQL语句检索订单号2008中的所有物品。

 

输入:SELECT prod_id,

            quantity,

            item_price,

            quantity*item_price AS expended_price

      FROM Products

      WHERE order_num=2008;

 

输出中显示的expanded_price列为一个计算字段,此计算字段为quantity*item_price。单价乘以订购数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值