1. select substr('今天是个好日子',3,5) from dual;
是个好日子
select substrb('今天是个好日子',3,5) from dual;
天是
前者是按照字来计算的,后者是按照字节来计算的,一个汉字两个字节,所以对于英文这两个函数是没有区别的。
2. decode()函数
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
3 . ROW_NUMBER()
row_number() over (partition by col1 order by col2)
表示根据col1分组,在分组内部根据 col2排序
而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的)
ROW_NUMBER()是没有重复值的,可以利用它实现分页显示。
4. DENSE_RANK()&RANK()
DENSE_RANK()是连续排序,有两个第二名时仍然跟着第三名。
RANK()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12743356/viewspace-430119/ ,如需转载,请注明出处,否则将追究法律责任。