iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
AI/ ML & Data

粗暴的資料處理 DuckDB系列 第 20

Day20 -- DuckDB Style SQL (14) ?

  • 分享至 

  • xImage
  •  

來到倒數第二個禮拜五拉 !

今天來介紹一個 quality of life 的 DuckDB SQL
首先我們先來 PostgreSQL 改錯字 。

這是一個在 Postgres 跑不了的 SQL

SELECT 42 as a, 
    a + 56 as b,

這個 SQL 在 Postgres 會有兩個錯誤,其中一個我們在第12天的時候介紹過,就是 Postgres 不允許,重複利用前一個的 SELECT item 的 alias.

好那我們把 SQL 改成下面這樣

SELECT 42 as a, 
       56 as b,

各位有看出還有一個錯誤嗎 ?

3
2
1

沒錯,就是大家複製貼上常常會多出來的 trailing comma,當我們在寫 SQL 時,最後一個 SELECT 的欄位或表達式後面不應該有逗號,否則會導致語法錯誤。

但是這件事其實在現代一點的語言都允許這種小小的偷懶 🤪

Rust

let arr = [1, 2, 3,]; // 3 後面有多一個 comma 
let tuple = (
    "hello",
    "world",
); // world 後面有多一個 comma 

println!("{:?}, {:?}", arr, tuple);

Python

arr = [1, 2, 3,]; # 3 後面有多一個 comma 

obj = {
    'a': 1,
    'b': 2,
};  # world 後面有多一個 comma 

所以 SQL 為什麼不能也支援這種無傷大雅,但是卻明顯有幫助的語法糖 ?

因此最一開始的 SQL 在 DuckDB 是完全可以跑的

SELECT 42 as a, 
    a + 56 as b,

趕快到 DuckDB WASM 或 Colab 試試看吧!


上一篇
Day19 -- DuckDB Style SQL (13) ?
下一篇
Day21 -- DuckDB Style SQL (15) ?
系列文
粗暴的資料處理 DuckDB30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言