编辑MaxCompute SQL 时,常常会须要在某个表N个列中指定一些列。若须要指定的列比较少,编写SQL时一个个输入既可。当遇到列多的时候,一个个输入就会很是费劲。本文将介绍如何在编写MaxCompute SQL时经过正则表达式表达列(column),从而提高编码效率。正则表达式
首先用一个简单的示例介绍正则表达式的使用方法:编码
SELECT `abc.*` FROM t;--查询 t 表中全部名字以 'abc' 开头的列。
如上示例,使用了正则表达式"abc.*",在MaxCompute SQL中,正则表达式须要使用 ` 符号括起来,这个符号是键盘上 1 键左边的那个键,称作反单引号(注意需英文模式输入) 。code
正则表达选列的一个很是重要的用法是,使用反选的方式来选列。如:get
SELECT `(ds)?+.+` FROM t;--选t表中列名字不叫‘ds’的全部列。
相似的用法还有:社区
(ds|pt)?+.+
排除两列.(d.*)?+.+
排除名字以d打头的全部列.注意:在排除多个列的时候,若是col2是col1的前缀,则必定要把col1写到col2的前面(长的写前面)。好比一个表有2个分区你不想select,一个叫ds,另外一个叫dshh,那么要写成 (dshh|ds)?+.+
,而不能写成 (ds|dshh)?+.+
。效率
原文连接
本文为云栖社区原创内容,未经容许不得转载。select