zoukankan      html  css  js  c++  java
  • MaxCompute SQL 使用正则表达式选列

    编辑MaxCompute SQL 时,经常会需要在某个表N个列中指定一些列。若需要指定的列比较少,编写SQL时一个个输入既可。当遇到列多的时候,一个个输入就会非常费劲。本文将介绍如何在编写MaxCompute SQL时通过正则表达式表达列(column),从而提升编码效率。

    首先用一个简单的示例介绍正则表达式的使用方法:

    SELECT `abc.*` FROM t;--查询 t 表中所有名字以 'abc' 开头的列。
    

    如上示例,使用了正则表达式"abc.*",在MaxCompute SQL中,正则表达式需要使用 ` 符号括起来,这个符号是键盘上 1 键左边的那个键,称做反单引号(注意需英文模式输入) 。

    正则表达选列的一个非常重要的用法是,使用反选的方式来选列。如:

    SELECT `(ds)?+.+` FROM t;--选t表中列名字不叫‘ds’的所有列。 
    

    类似的用法还有:

    (ds|pt)?+.+ 排除两列.
    (d.*)?+.+ 排除名字以d打头的所有列.
    注意:在排除多个列的时候,如果col2是col1的前缀,则一定要把col1写到col2的前面(长的写前面)。比如一个表有2个分区你不想select,一个叫ds,另一个叫dshh,那么要写成 (dshh|ds)?+.+ ,而不能写成 (ds|dshh)?+.+ 。



    本文作者:海清

    原文链接

    本文为云栖社区原创内容,未经允许不得转载。

  • 相关阅读:
    解决Spring+Quartz无法自动注入bean问题
    MacBook PRO蓝牙无法搜索设备
    解决HP打印机错误:Couldn't open fifo
    SQL调优
    ALTER SEQUENCE 修改序列解决唯一约束冲突 unique constraint violated
    Linux Unix 环境变量设置实例
    DB2解除锁表
    ExtJS远程数据-本地分页
    安装mysql
    celery使用
  • 原文地址:https://www.cnblogs.com/zhaowei121/p/10718055.html
Copyright © 2011-2022 走看看