1.拼接字段
1.1 拼接实践
例如:Vendor表中包含供应商名和国家信息,现在需要生成一个供应商报表,需要在格式化的名称中,不仅列出供应商名还要有地址
create table vendors (
vend_name varchar(24),
vend_country varchar(24)
)
insert into vendors values ('Microsoft Corporation','USA');
insert into vendors values ('Alibaba Group','CHINA');
此报表需要一个值,不仅列出name还要用括号将country括起来,我们如何创建这个组合值?
拼接:将多个值拼结到一起,构成单个值
Access和SQL Server中使用+号,DB2,Oracle,PostgreSQL等使用||,而MySQL和MariaDB时要使用特殊函数
SELECT vend_name + '(' + vend_country + ')'
FROM Vendors;
SELECT vend_name || ' (' || vend_country || ')' as name_country
FROM Vendors;
SELECT Concat(vend_name, ' (', vend_country, ')')
FROM Vendors;
结果为:
拼接的一方必须是字符串类型,可以简单理解为字符串的拼接
在某些数据库中,返回的值会保存填充为列宽的文本值,而实际上你并不需要这些空格
--------------------------------------------------
Microsoft Corporation (USA )
Alibaba Group (CHINA )
此时使用sql中的RTRIM()函数可以解决这个问题,RTRIM()函数去掉值右边的所有空格,对列进行跟进处理
大多数DBMS都支持RTRIM(),他去除字符串右边的空格
LTRIM()去掉字符串左边的空格
TRIM()去掉两端的空格
1.2 别名
拼接的新字段,并没有名称,只是一个值,并不能实际应用于客户端应用中。此时我们需要使用别名
别名是一个字段或值的替换名,别名关键词as,如下
SELECT vend_name || ' (' || vend_country || ')' as name_country
FROM Vendors;
2.执行算术计算
create table Orders(
prod_id varchar(24),
quantity number,
item_price number
)
insert into Orders values ('RGAN01',5,4.9900);
insert into Orders values ('BR03',5,11.9900);
insert into Orders values ('BNG01',10,3.4900);
此时,我们要汇总每个物品的价格(单价*数量)
SELECT prod_id,
quantity,
item_price,
quantity * item_price as expanded_price
FROM Orders;
结果为:
操作运算符:
+ 加 - 减 * 乘 / 除