- replace()
replace(str,‘a’,‘b’) 将字符串str 中的a字符串替换为b。
- regexp_replace()
regexp_replace(str,‘正则表达式’,b) 将字符串str中正则匹配的地方替换为b。
当然类似的还有
regexp_substr()
regexp_extract(str,正则,ids) 对字符串正则匹配取第ids个元素。
regexp_instr()
regexp_like()
其用法参考:函数具体用法
- translate()
translate(str,‘str1’,‘str2’)
对str字符串和str1字符串进行比对,字符相同的话,替换成str2相同位置的字符。
select translate(‘ab 你好 bcadefg’, ‘abcdefg’,‘1234567’) as new_str from dual
结果为:12 你好 2314567
替换目标字符串中的字符abcdefg
1234567
上下对应
- trim()
trim(str) 对字符串str进行首尾去空操作
- case when (条件) then a else b end
类似于if else语句
- length()
length(str) 获得字符串的长度。
- size()
size(数组) 获得数组中元素的个数
- split()
split(str,‘-’)对字符串str按照 - 进行切分,得到数组。索引从0开始。
使用索引获取数组的个数。split(str,‘-’)[0], 或者 split(str,‘-’)[1]
- substr()
substr(str,0,1)表示对字符串str从索引0位置开始,截取长度为1的字符。
substr(str,-1,4)表示对字符串str从索引最后的位置开始,向前截取4个长度的字符。
- instr()
instr(str1,str2,start,nth) 返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。
表示从str1中start索引位置开始查找str2的字符串。nth表示查找的字符串出现的第几
次。
select instr(‘aa,bb,cc,dd,ee,ff’, ‘,’, 1,1) from dual;–3
select instr(‘aa,bb,cc,dd,ee,ff’, ‘,’, 1,2) from dual;–6 select
instr(‘aa,bb,cc,dd,ee,ff’, ‘,’, -1,1) from dual;–15
注意,索引从1开始。
- cast()
cast(ff as string) 将ff列中的字段类型转换为string类型。还有bigint等等。
- decimal()
decimal(a,b)
a:指的是整数和小数所能存的最多的位数
b:指的是小数数字的位数,即a-b就是整数的位数
例如: select cast(hhh as decimal(10,2))
- from_utc_timestamp()
from_utc_timestamp(public_date,‘yyyy-MM-dd HH:mm:ss’) 将UTC时间转化为对应格式的时间戳。
- from_unixtime()
from_unixtime(now(), ‘%Y-%m-%d %H:%i:%s’) now()获取当前时间,并将时间转换为指定格式。
- date_format()
date_format(now(), ‘%Y-%m-%d %H:%i:%s’) now()获取当前时间,并将时间转换为指定格式。
- now()
获取当前系统时间。
- coalesce()
coalesce(a,b,c)函数,当a为null返回b,当b为null返回c。
select coalesce(t2.comm_pgud_num, 0) from t
- concat()
concat(str1,str2)将两个字符串拼接在一起。