一、字符串中子字符串的位置

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

  • 空值转换
  1. NVL函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回响应的列名或表达式,主要用于对数据列上的空值进行处理,语法格式如:NVL( string1, replace_with)。
  2. NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
  3. coalesce函数的用法(也相当于HiveQL中nvl函数的用法),其参数格式如下: COALESCE ( expression,value1,value2……,valuen) ;COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是否是空值,如果value2不为空值则返回value3;……以此类推。
  4. ISNULL
  • 转化成字符串
  1. TO_CHAR
  2. 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语句简单了许多

  1. case when " +s1+" = "+s2+" then "+s3+" else "+s4+" end

注意学习精度的格式,fm精度去前缀空格