來到倒數第二個禮拜五拉 !
今天來介紹一個 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 的欄位或表達式後面不應該有逗號,否則會導致語法錯誤。
但是這件事其實在現代一點的語言都允許這種小小的偷懶 🤪
let arr = [1, 2, 3,]; // 3 後面有多一個 comma
let tuple = (
"hello",
"world",
); // world 後面有多一個 comma
println!("{:?}, {:?}", arr, tuple);
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 試試看吧!