MySQL【创建计算字段】

拼接字段

举一个创建由两列组成的标题的简单例子。vendors表包含供应商名和位置信息。

假如要生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。

此报表需要单个值,而表中数据存储在两个列vend_name和vend_ country中。此外,需要用括号将vend_country括起来,这些东西都没有明确存储在数据库表中。我们来看看怎样编写返回供应商名和位置的 SELECT语句。

select concat(vend_name,' (',vend_country,')')
from vendors
order by vend_name

 

Concat()拼接串,即把多个串连接起来形成一个较长的串。 Concat()需要一个或多个指定的串,各个串之间用逗号分隔。 上面的SELECT语句连接以下4个元素:  存储在vend_name列中的名字;  包含一个空格和一个左圆括号的串;  存储在vend_country列中的国家;  包含一个右圆括号的串

Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。 上面的SELECT语句连接以下4个元素:

 存储在vend_name列中的名字;

 包含一个空格和一个左圆括号的串;

 存储在vend_country列中的国家;

 包含一个右圆括号的串。

从上述输出中可以看到,SELECT语句返回包含上述4个元素的单个列 (计算字段)。 曾提到通过删除数据右侧多余的空格来整理数据,这可以使用MySQL的RTrim()函数来完成 

Trim函数 MySQL除了支持RTrim()(正如刚才所见,它去掉 串右边的空格),还支持LTrim()(去掉串左边的空格)以及 Trim()(去掉串左右两边的空格)。

使用别名 

从前面的输出中可以看到,SELECT语句拼接地址字段工作得很好。 但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。如 果仅在SQL查询工具中查看一下结果,这样没有什么不好。但是,一个未 命名的列不能用于客户机应用中,因为客户机没有办法引用它。

为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值 的替换名。别名用AS关键字赋予。

select concat(RTRIM(vend_name),' (',vend_country,')') as vend_title
from vendors
order by vend_name

 从输出中可以看到,结果与以 前的相同,但现在列名为vend_title,任何客户机应用都可以按名引用 这个列,就像它是一个实际的表列一样。

别名的其他用途 别名还有其他用途。常见的用途包括在实际的表列名包含不符合规定的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它,等等。 

导出列 别名有时也称为导出列(derived column),不管称为 什么,它们所代表的都是相同的东西。 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值