QUERY 函式大解析(三):ORDER BY、LIMIT、OFFSET、LABEL

更新於 發佈於 閱讀時間約 8 分鐘

我們在最近的系列文介紹了 QUERY 函式的用法,有 SELECT、WHERE 就可以應付不少的搜尋狀況。今天再介紹四個小功能:ORDER BY、LIMIT、OFFSET 和 LABEL 給大家,讓你的 QUERY 更強大!

我在方格子上寫了一系列使用 QUERY 的教學文章,也歡迎你來看看:

QUERY 函式大解析,系列文索引


先來重點摘錄一下這四個功能:

  • ORDER BY:排序 QUERY 結果
  • LIMIT:限制回傳行數
  • OFFSET:跳過N行後執行 QUERY
  • LABEL:設定新的標題名稱

ORDER BY:排序 QUERY 結果

我們可以指定某個欄位為基準,對 QUERY 結果做遞增或遞減排序。語法很直接,就是:

=QUERY(..., "SELECT ....... ORDER BY 欄位字母")

例如我有個表格長這樣子:

raw-image

我想要搜尋資料庫內所有女性的資料,並希望回傳結果是以身分證字號的字母(也就是B欄)為基準,做遞增(A→Z)的排序的話,就是:

=QUERY(A1:E10, "SELECT * WHERE C = '女' ORDER BY B", 1)

就會得到:

raw-image

你會發現這邊不僅回傳所有女性(C欄都符合「女」)的資料,身分證字號也按照遞增順序排列整齊了(B→C→D→G→H)!

如果今天你想要做遞減的排序,只要在 ORDER BY 指令後指定好欄位後,再加個 DESC 就好,也就是:

=QUERY(..., "SELECT ....... ORDER BY 欄位字母 DESC)

用同樣的資料範圍,只把以身分證字號的首字順序遞減:

=QUERY(A1:E10, "SELECT * WHERE C = '女' ORDER BY B DESC", 1)

就會得到:

raw-image

所有性別符合「女」的資料都回傳了,身分證字號也是遞減顯示(H→G→D→C→B)。就是這麼簡單!但有幾點要注意:

  1. ORDER BY 目前還不支援中文排序(如筆劃順序、注音順序或拼音順序)。
  2. ORDER BY 的預設排序就是遞增,你也可以加上 ASC 表示遞增:ORDER BY # ASC。
  3. 建議可以和 IS NOT NULL 一起並用,可以確保 QUERY 結果不會在最初數行回傳空值。
  4. 記得要把這指令放在 WHERE 之後。


LIMIT:限制回傳行數

有時我們不需要那麼多訊息,可能只要資料庫的一部分就好(例如只想收到 50 個結果),LIMIT 就會是我們的好夥伴。語法也很單純:

=QUERY(..., "SELECT ....... LIMIT 行數")

這邊的行數就填入數字就好了。例如:

  • LIMIT 5:只回傳 5 行結果。
  • LIMIT 10:只回傳 10 行結果。
  • LIMIT 20:只回傳 20 行結果。

同樣的,假設我們只想要前三筆的所有資訊,那語法就是:

=QUERY(A1:E10, "SELECT * LIMIT 3", 1)

你就會得到:

raw-image

(不確定這邊的「標題」在說什麼的,可以右轉回去看一下:QUERY 函式大解析(一):基本原理與 SELECT 前面語法的部分!)

小提醒:

  1. LIMIT 後面只能接數字!
  2. 跟 ORDER BY 一起合用的話,可以得到「前」或「末」N筆的資料,這是一個很實用的連續技!使用語法是:=QUERY(..., "SELECT ....... ORDER BY 欄位 LIMIT 行數"),建議斟酌使用 DESC 來輔助你取得「前N筆」或「末N筆」的資料。


OFFSET:跳過N行後執行 QUERY

如題,輸入這個指令後就可以請 QUERY 跳過指定行數後,取得資料。直接上語法!

=QUERY(..., "SELECT ....... OFFSET 行數")

所以,如果你想:

  • 跳過 5 行開始取資料:=QUERY(..., "SELECT ....... OFFSET 5")
  • 跳過 10 行開始取資料:=QUERY(..., "SELECT ....... OFFSET 10")
  • 跳過 30 行開始取資料:=QUERY(..., "SELECT ....... OFFSET 30")

來看看同樣的資料庫:

raw-image

今天如果要跳過 3 行,開始取得剩下的資料,語法就會是:

=QUERY(A1:E10, "SELECT * OFFSET 3", 1)

你就會得到:

raw-image

稍稍對比,你會發現資料是從第 5 行開始取的,不包含標題、跳過了第 2、第 3、第 4 三行。

小提醒:

  1. OFFSET 也很常和 LIMIT 一起合用,得到從某行開始、特定數筆的資料。語法順序要稍稍注意,必須先寫 LIMIT 再寫 OFFSET。
    語法範例:
=QUERY(..., "SELECT ....... LIMIT 行數 OFFSET 行數")


LABEL:設定新的標題名稱

如果你必須在不更改原本資料庫的情況下,得重新設定新的標題並進行 QUERY,LABEL 就是個好選擇。語法如下:

=QUERY(..., "SELECT ....... LABEL 欄位字母 '想取的新名字'")

如果你想設定兩個以上的標題也當然是可以的,語法像是這樣:

=QUERY(..., "SELECT ....... 
LABEL 欄位字母甲 '想取的新名字甲',
欄位字母乙 '想取的新名字乙', ...")

一樣請出我們這次的資料庫:

raw-image

假如今天得在 QUERY 結果要把「姓名」(A欄)改成「Name」的話,我們的語法會寫成:

=QUERY(A1:E10, "SELECT * LABEL A 'Name'", 1)

執行結果如下:

raw-image

欸嘿!變成「Name」了!

那如果我要把全部的標題(名字、身分證字號、性別、手機號碼)都改成英文的話,就可以寫成:

=QUERY(A1:E10, "SELECT * LABEL A 'Name',
B 'ID',
C 'Gender',
D 'Mobile'", 1)

你就會得到:

raw-image

OK,打完收工!

小提醒:

  1. 如果有兩個以上的標題要指定,別忘了在標題和標題之間放上逗號(,)隔開,標題字串也要用單引號(')。
  2. 你如果想讓標題空白,也可以指定「''」:LABEL A ''。

我非常鼓勵你打開你現有的資料,搭配 WHERE 交互使用,會有更多不同的發現!我個人很喜歡 WHERE、ORDER BY 和 LIMIT 的組合技,可以讓我在篩選一定條件下需要的資料筆數,還可以按照自己的需求做排序,會讓 QUERY 更有效率,快速取得資料。如果你在使用上遇到任何問題,也歡迎你在文章下面留言讓我知道,我會盡力幫忙!

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!

想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



留言
avatar-img
留言分享你的想法!
喜特先生 Mr. Sheet -avatar-img
發文者
2022/04/27
Hi Gabriel!謝謝你的留言。 沒錯,這邊是我疏失了,LABEL 寫一次就可以囉! 我也已經編輯文章內容了,感謝指正 。:.゚ヽ(*´∀`)ノ゚.:。
喜特先生 Mr. Sheet -avatar-img
發文者
2024/01/30
QUERY 函式大解析,系列文索引提及了這篇文章,趕快過去看看吧!
Gabriel-avatar-img
2022/04/27
=QUERY(A1:E10, "SELECT * LABEL A 'Name', LABEL B 'ID'", LABEL C 'Gender', LABEL D 'Mobile'", 1) 請問後面B C D 的語法是不是不用寫LABEL呢? 我看網路上的參考好像是: =QUERY(A1:C13, "select * label A 'A Column', B 'B Column'")
avatar-img
喜特先生官方沙龍
17.9K會員
152內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
範例句: 假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下: 假設條件為: clauses:[提升,滿意度,問卷] 。 slop:4。 in_order: true ❗ 這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。 查詢結構會是如此 請問上述條件是否能正
Thumbnail
範例句: 假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下: 假設條件為: clauses:[提升,滿意度,問卷] 。 slop:4。 in_order: true ❗ 這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。 查詢結構會是如此 請問上述條件是否能正
Thumbnail
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
Thumbnail
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
Thumbnail
資料集中除了陣列這個外,還有另一個好幫手就是List,它跟陣列很像,我們直接來看一下怎麼用: 它的語法: 1.給予值 (1)單一新增: (2)陣列式新增: 例子: 2.取值 (1)foreach迴圈方式 (2)單一取值 3.取得List有多少個內容值 4.排序 想要反轉就再使用↓ 5.插入 6.複製
Thumbnail
資料集中除了陣列這個外,還有另一個好幫手就是List,它跟陣列很像,我們直接來看一下怎麼用: 它的語法: 1.給予值 (1)單一新增: (2)陣列式新增: 例子: 2.取值 (1)foreach迴圈方式 (2)單一取值 3.取得List有多少個內容值 4.排序 想要反轉就再使用↓ 5.插入 6.複製
Thumbnail
陣列運用、擷取字串   對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~
Thumbnail
陣列運用、擷取字串   對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~
Thumbnail
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
Thumbnail
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News