hive教程:字符串操作

概述

本文介绍sql语句中的字符函数

连接字符串

使用concat(n1,n2,...)函数

select concat('Dear ',ename,',您的工资是:',sal)  as 工资条  from    emp

过滤首尾空格

有时数据库中的值首尾包含空格,去掉空格使用函数 trim()
注意: 只能去掉首尾的空格

select trim(ename) from emp

转大写

使用函数 upper(n)
返回字符串的大写形式

SELECT * FROM emp WHERE ename=UPPER('smith')

转小写

使用函数 lower(n)
返回字符串的小写形式

SELECT empno,lower(ename),job FROM emp

截取字符串

语法:

substr(chr ,m[,n])

或

substring(chr ,m[,n])

解释: 截取chr的字串

  • m 代表开始位置,有以下两种情况:
    • 当 m 为 1 时从首字符开始
    • 当 m 为负数时,表示倒数,如: -1 表示倒数第一个字符
  • n 有以下两种情况:
    • 不写,表示截取到末尾
    • 不是0,表示要截取的长度

例子

截取入职年份:

select ename,substr(hiredate,1,4),substring(hiredate,1,4) from emp
select ename,substr(ename,1,1) from emp
substr(ename,1,1) 截取第一个字符
substr(ename,2,1) 截取第二个字符


SELECT * FROM EMP WHERE substr(ENAME,2,1) ='A'

替换字符串

将查询结果中的某个字符替换成另一个字符,通过下面函数实现:

replace(列名,'原字符','替换字符')

把名字中的A替换成B

select ename,replace(ename,'A','B') from emp

练习

  1. 查询员工信息,结果为:您好【员工姓名】,您本月的工资为【工资金额】,您本月的奖金为【奖金金额】,合计为【工资+奖金】

原文出处:/show_1IX3GYVoWCSM.html