zoukankan      html  css  js  c++  java
  • SQL系统函数

    1.with...as...

    说明:把一大堆重复用到的SQL语句放在with as里面,取一个别名,后面查询就可以直接用它,这样对于大批量的SQL数据起到一个优化的作用,而且清楚明了。

    eg:

    with a as (select * from test)
    select * from a

    2.case when then

     说明:case具有两种格式,简单case函数和case搜索函数

    a.简单case函数

    eg:

    case sex
    when '1' then ''
    when '2' then ''
    else '其他' 
    end

    b.case搜索函数

    eg:

    case when sex='1' then ''
         when sex='2' then ''
    else '其他' 
    end

    3.stuff

    说明:删除指定长度的字符,并在指定的起点处插入另一组字符

    语法格式:stuff(expression,start,length,expression)

    eg:

    //在第一个字符串abcdef中删除从第2个位置(字符b)开始的3个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。
    select
    stuff('abcdef',2,3,'ijklmn')
    结果集:aijklmnef

     4.replace

    说明:用第三个表达式替换第一个字符表达式中出现的所有第二个指定字符串表达式的匹配项

    语法格式: replace('string_expression1','string_expression2','string_expression3')

    eg:

    //使用xxx替换abcdefghicde中的cde
    select
    replace('abcdefghicde','cde','xxx')
    结果集: abxxxfghixxx

    5.space

    说明:生成任意多个空格组成的字符串

    语法格式:space('integer_expression')  //integer_expression:指示空格个数的正整数

    eg:

    select ('hello' + space(5) + 'world')
    结果集:hello world

    6.replicate

    说明:可以按照指定的整数次数,重复生成一个字符串形式的表达式,结果为字符串

    语法格式:replicate('字符串','次数')

    eg:

    select replicate('hello',5)
    结果集:hellohellohellohellohello

    7.substring

    说明:对字符串进行字串的截取操作

    语法格式:substring('表达式','开始的位置','长度')

    eg:

    select substring('hello',1,2)//第一个字符从1开始
    结果集:he

    8.len

    说明:用于获取字符串的长度(字符数),但不包括右边的空格,包括左边的空格

    语法格式:len('字符串')

    eg:

    select len('天下之大,无奇不有')
    结果集:9

     9.charIndex

    说明:用于在指定的字符串中搜索特定的字符串,并可以指定开始搜索的位置,返回第一次找到目标字符串的字符数

    语法格式:charindex('要查找的字符序列1','指定序列搜索的列2[ ,'开始在2中搜1的字符位置']')

    eg:

    select charindex('456','123456789')
    select charindex('456','123456789',4)
    结果集:都是4

    10.left和right

    说明:截取从左/右边第一个自负开始,指定长度的字符串

    语法格式:left/right('要截取的字符串','长度')

    eg:

    select left('123456789',3)
    select right('123456789',3)
    结果集:123
    789

    11.ltrim和rtrim

    说明:清除左/右边空格

    语法格式:ltrim/rtrim('字符串')

    eg:

    select ltrim('   123456789')
    select rtrim('123456789   ')
    结果集:123456789

    12.lower和upper

    说明:将字符串全部转换成小写/大写后返回

    语法格式:lower/upper('字符串')

    eg:

    select lower('ABC')
    select upper('abc')
    结果集:abc
    ABC

    13.reverse

    说明:将字符串内容反序后返回

    语法格式:reverse('字符串')

    eg:

    select reverse('123456789')
    结果集:987654321
  • 相关阅读:
    Spark中RDD、DataFrame和DataSet的区别
    如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory
    一些常用的Spark SQL调优技巧
    使用sendmail命令发送附件
    spark.sql.shuffle.partitions 和 spark.default.parallelism 的区别
    Spark Shuffle
    [Spark学习] Spark RDD详解
    将时间戳(timestamp)转换为MongoDB中的ObjectId
    如何使用pig的AvroStorage存储array/map类型
    关于Avro中的Unions类型
  • 原文地址:https://www.cnblogs.com/hlna/p/4959297.html
Copyright © 2011-2022 走看看