一、字符串中子字符串的位置
1.instr函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置。instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置。
instr( string1, string2, start_position,nth_appearance )
参数
● string1:源字符串,要在此字符串中查找。
●string2:要在string1中查找的字符串 。
●start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
●nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
位置索引号从1开始。
如果String2在String1中没有找到,instr函数返回0。 示例:
SELECT instr('syranmo','s') FROM dual; -- 返回 1
SELECT instr('syranmo','ra') FROM dual; -- 返回 3
SELECT instr('syran mo','at',1,2) FROM dual; -- 返回 0
数据库:金仓、神通、orcal
2.PostgreSQL的POSITION()函数返回字符串中子字符串的位置。
用法:POSITION(substring in string)
代表数据库:postgresql
- 空值转换
- NVL函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回响应的列名或表达式,主要用于对数据列上的空值进行处理,语法格式如:NVL( string1, replace_with)。
- NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
- coalesce函数的用法(也相当于HiveQL中nvl函数的用法),其参数格式如下: COALESCE ( expression,value1,value2……,valuen) ;COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是否是空值,如果value2不为空值则返回value3;……以此类推。
- ISNULL
- 转化成字符串
- TO_CHAR
- CONVERT(varchar(200), "+fieldName+", 120) "+aliasName;
- 字符转数字类型
1.TO_NUMBER
- 递归
1.start with connect by prior
2. with recursive as
- 字符串拼接
1.wm_concat
2.string_agg
- decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
1.decode(X,A,B,C,D,E)
这个函数运行的结果是,当X = A,函数返回B;当X != A 且 X = C,函数返回D;当X != A 且 X != C,函数返回E。 其中,X、A、B、C、D、E都可以是表达式,这个函数使得某些sql语句简单了许多
- case when " +s1+" = "+s2+" then "+s3+" else "+s4+" end
注意学习精度的格式,fm精度去前缀空格