2026-08-15
2026-08-14
[Oracle 11] 發生系統例外: ORA-00923: 在應出現的位置找不到 FROM 關鍵字
先說一下,我的 Oracle DB 與 SQL 引擎版本如下
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
這是我最近遇到的狀況。
我的 SQL 如下
SELECT FOO01 AS name,
FOO02 AS foo_value
FROM FOO_TABLE
結果就出現錯誤了
2026-08-13
SQL 中 NOT IN 的陷阱
這是我的 SQL
WITH T AS (
SELECT 1 AS id
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
),
S AS (
SELECT 10 AS id
UNION ALL
SELECT 11
UNION ALL
SELECT 12
UNION ALL
SELECT 4
)
SELECT * FROM S
WHERE id NOT IN (SELECT id FROM T)
這段 SQL 執行完畢後,會得到
| id |
|---|
| 10 |
| 11 |
| 12 |
但是,如果今天 T 加上一筆 null 資料,即:
| id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| (null) |
2026-08-10
SQL Server ,僅修改時間欄位的年/月/日
假設我的 table 如下
| id | foo_date | …… |
|---|---|---|
| 123 | 2020-01-05 | …… |
| 124 | 2020-02-16 | …… |
| 125 | 2020-11-21 | …… |
如果我要更新 foo_date,將月份改成 6 月,則可以
2026-07-15
2026-01-22
2024-09-10
2022-12-27
2020-06-12
Clickhouse 實現 MySQL 的 group_concat() 的作法
MySQL 有 group-concat function,能將 group by 後的資料合併,方便查詢、處理。
例如
mysql> select id, group_concat(arr) from (
-> select 1 as id, 'orange' as arr
-> union all
-> select 1, 'banana'
-> union all
-> select 2, 'apple'
-> union all
-> select 1, 'banana'
-> union all
-> select 3, 'peach'
-> union all
-> select 1, 'grava'
-> union all
-> select 4, 'pineapple'
-> union all
-> select 4, 'pear'
-> ) as f
-> group by id;
+----+----------------------------+
| id | group_concat(arr) |
+----+----------------------------+
| 1 | banana,grava,orange,banana |
| 2 | apple |
| 3 | peach |
| 4 | pineapple,pear |
+----+----------------------------+
4 rows in set (0.00 sec)
然而這畢竟是 MySQL 特有的 function, clickhouse 並無此 function,要做到同樣的事就得用其他 function 來處理
訂閱:
文章 (Atom)