Oracle学习2:别名&字符串拼接

本文介绍如何在SQL查询中使用别名简化操作及提高可读性,并演示字符串拼接的方法,包括处理空值和特殊字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

别名可以用于字段、查询结果表等,可以极大的简化我们的数据库操作。

小结

  • 可以对字段(包括计算得到的字段)做别名处理
  • 方法:(AS)+别名。AS可以省略
  • 任何含有空值的数学表达式,最后的结果都是空值
  • COALESCE函数返回第一个不为NULL的值,如果全为NULL,则返回NULL
  • 使用”“双引号包裹,可以保留别名格式
  • 字符串拼接”||”
  • 字符串通过单引号包括,拼接单引号可以通过两个单引号实现拼接

这里把小结写在最前面,方便突出重点,具体的解释见下文。

1.创建测试表并插入数据

如下我们创建一个表:TEST_LJB,并插入数据:

CREATE TABLE TEST_LJB
(
    employee    VARCHAR2(10)
   ,salary      NUMBER
   ,bonus       NUMBER
)
TABLESPACE USERS
    pctfree     10
    initrans    1
    maxtrans    255
    storage
(
    initial     64K
    next        1M
    minextents  1
    maxextents  UNLIMITED
)
;


INSERT ALL
INTO TEST_LJB VALUES ('Arvin','1000','500')
INTO TEST_LJB VALUES ('Java','1100','400')
INTO TEST_LJB VALUES ('Hive','1200','600')
INTO TEST_LJB VALUES ('Oracle','1500',NULL)
INTO TEST_LJB VALUES ('Hadoop','2000','100')
SELECT 1 FROM DUAL;
COMMIT;

2.字段别名

我们计算下每个雇员的年薪:

SELECT salary*12+bonus FROM TEST_LJB;

如果直接这样运算,有一个结果会是null。
这里写图片描述
任何含有空值的数学表达式,最后的结果都是空值
可以采用如下方式:

SELECT salary*12+COALESCE(bonus,0) FROM TEST_LJB;

这里写图片描述
这里的 COALESCE函数返回第一个不为NULL的值,如果全为NULL,则返回NULL
这样看起来运算字段结果太长,而且没有具体的含义,我们可以用别名年薪

SELECT salary*12+COALESCE(bonus,0) AS annual_salary FROM TEST_LJB;

也可以省略掉AS

SELECT salary*12+COALESCE(bonus,0) annual_salary FROM TEST_LJB;

如果我们的别名中见有空格,该如何实现:annual salary
我们可以使用”“进行包裹
如下:

SELECT salary*12+COALESCE(bonus,0) AS "annual salary" FROM TEST_LJB;

而且还会保留原有的大小写格式。

3.字符串拼接

字符串拼接”||”
我们把年薪后面加个$

SELECT salary*12+COALESCE(bonus,0)||'$' AS annual_salary FROM TEST_LJB;

注意:字符串通过单引号包括

如果我们想要的结果是含有’(单引号)的呢?10000’$
可以在增加一个’,加上需要显示的单引号,即两个单引号。

SELECT salary*12+COALESCE(bonus,0)||'''$' AS annual_salary FROM TEST_LJB;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值