SQL中的join
如图所示:
方法:
方法名:find_in_set
集合查找函数: find_in_set
返回值: int
说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0
举例:
select find_in_set(“aa”, “aq,aa,d”) limit 10000 返回的是2, 因为aa字符串在第2个位置处
select find_in_set(“as”, “aq,aa,d”) limit 10000 返回的是0, 因为as字符串没有找到
这个方法坑的地方是在第2个参数中,用逗号连接要匹配的字符串,切记中间不能有空格,只能是逗号连接。如果是下面的形式就匹配不出来:
select find_in_set(“aa”, “aq, aa, d”) limit 10000 这是错误形式
方法名:nvl
作用:NVL(expr1, expr2) 空值转换
如果expr1 为NULL, 则使用expr2值; 如果不是NULL, 则使用expr1。
注意:适用于数字型、字符型和日期型,但是 expr1和expr2的数据类型必须为同类型。
举例:
select nvl(name, “name is NULL”) LIMIT 1000
方法名:split
作用:切分字符串
举例:
select split(“as_ss”, ‘_’)[0] limit 900 切分后的索引是从0开始的
sql中 with as 用法
sql中的with as 语句相当于建立临时表或者sql片段,下面的语句中可以复用
针对一个别名:
with tmp as (select * from table_name)
多个别名:
with
tmp1 as (select * from table_name1)
tmp2 as (select * from table_name2)
tmp3 as (select * from table_name3)
with语句的有点:
(1)可读性高
(2)with子查询只执行一次,结果存在临时表空间中,可以多次引用,增强性能。