我在 Oracle sql 方言中有一個帶有陣列的 VARCHAR 列(字串作為陣列)如何計算其中的不同值?
例如我有以下行
ID List
1 ["351","364"]
2 ["364","351"]
3 ["364","951"]
4 ["951"]
我預計數3。
uj5u.com熱心網友回復:
假設您使用的是最新版本的 Oracle,您可以使用 JSON 函式來提取陣列的元素:
select t.id, j.value
from your_table t
outer apply json_table (t.list, '$[*]' columns (value path '$')) j
| ID | 價值 |
|---|---|
| 1 | 351 |
| 1 | 364 |
| 2 | 364 |
| 2 | 351 |
| 3 | 364 |
| 3 | 951 |
| 4 | 951 |
然后只計算不同的值:
select count(distinct j.value) as c
from your_table t
outer apply json_table (t.list, '$[*]' columns (value path '$')) j
| C |
|---|
| 3 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497744.html
