实现如下:
WITH ranked_data AS (
SELECT VARCHAR字段, CLOB字段,
ROW_NUMBER() OVER (PARTITION BY VARCHAR字段, DBMS_LOB.SUBSTR( CLOB字段, 10, 1) ORDER BY VARCHAR字段) AS rn
FROM TEST)
SELECT VARCHAR字段, CLOB字段
FROM ranked_data
WHERE rn = 1 order by VARCHAR字段
解释:
- WITH 子句:定义了一个名为 ranked_data 的临时结果集。
- ROW_NUMBER() 函数:为每个分组内的行分配一个唯一的行号。分组的依据是 VARCHAR字段、CLOB字段,这些字段用于确定唯一性。
- ORDER BY VARCHAR字段:在每个分组内按 自定义字段 排序,确保选择每组中的第一条记录。
- 主查询:从 ranked_data 中选择 rn = 1 的记录,即每个分组中的第一条记录。
- ORDER BY VARCHAR字段:最终结果按 自定义字段 排序。