編輯MaxCompute SQL 時,經常會需要在某個表N個列中指定一些列。若需要指定的列比較少,編寫SQL時一個個輸入既可。當遇到列多的時候,一個個輸入就會非常費勁。本文將介紹如何在編寫MaxCompute SQL時通過正則表達式表達列(column),從而提升編碼效率。

首先用一個簡單的示例介紹正則表達式的使用方法:

如上示例,使用了正則表達式"abc.*",在MaxCompute SQL中,正則表達式需要使用 ` 符號括起來,這個符號是鍵盤上 1 鍵左邊的那個鍵,稱做反單引號(注意需英文模式輸入) 。

正則表達選列的一個非常重要的用法是,使用反選的方式來選列。如:

類似的用法還有:

(ds|pt)?+.+ 排除兩列.

(d.*)?+.+ 排除名字以d打頭的所有列.

注意:在排除多個列的時候,如果col2是col1的前綴,則一定要把col1寫到col2的前面(長的寫前面)。比如一個表有2個分區你不想select,一個叫ds,另一個叫dshh,那麼要寫成 (dshh|ds)?+.+ ,而不能寫成 (ds|dshh)?+.+ 。

------------------------------

本文作者:海清

原文鏈接:https://yq.aliyun.com/articles/697155?utm_content=g_1000052497

本文爲雲棲社區原創內容,未經允許不得轉載。

聲明:該文觀點僅代表作者本人,搜狐號系信息發佈平臺,搜狐僅提供信息存儲空間服務。
相關文章