查询到的结果集合并

table name : temp

     AA     BB
1   CAB     1009
2   CAB     1009
3   CAB     1009
4   CAC     2302
5   CAC     2302
6   CAC     2302

处理后结果:

     AA     BB
1   CAB     1009
2   CAB    
3   CAB    
4   CAC     2302
5   CAC    
6   CAC    
意思就是,将重复数据只显示一次,而且保留AA列的条数

 

SELECT AA,DECODE(RN,1,BB,'') FROM
(SELECT AA
, BB
, ROW_NUMBER() OVER (PARTITION BY AA,BB ORDER BY BB) AS RN
FROM TEMP)
order by AA,RN

使用 CompletableFuture 进行异步查询合并结果有多种方法。 可以使用 `thenCombine()` 方法来合并两个异步任务的结果。当这两个任务都完成时,它会执行一个 `BiFunction`,将两个任务的结果组合起来,并返回一个新的 `CompletableFuture`,该 `CompletableFuture` 包含组合后的结果 [^2]。 另一种方式是使用自定义线程池来执行多个异步任务并合并结果。示例代码如下: ```java import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; import java.util.stream.Collectors; import org.json.JSONObject; public class CompletableFutureExample { private static final int QUEUE_CAPACITY = 100; public static void main(String[] args) { // 自定义线程池 ThreadPoolExecutor executor = new ThreadPoolExecutor( 16, 32, 30, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(QUEUE_CAPACITY), new ThreadPoolExecutor.CallerRunsPolicy() ); // 模拟业务数据列表 List<String> list = new ArrayList<>(); list.add("item1"); list.add("item2"); // 业务实现代码 List<CompletableFuture<JSONObject>> completableFutures = list.stream() .map(item -> CompletableFuture.supplyAsync(() -> { // 模拟查询业务 JSONObject json = new JSONObject(); json.put("key", item); return json; }, executor)) .collect(Collectors.toList()); // 等待所有任务完成并获取结果 List<JSONObject> retList = completableFutures.stream() .map(CompletableFuture::join) .collect(Collectors.toList()); // 输出结果 for (JSONObject json : retList) { System.out.println(json); } // 关闭线程池 executor.shutdown(); } } ``` 在上述代码中,首先创建了一个自定义线程池 `executor`,然后使用 `CompletableFuture.supplyAsync()` 方法将每个查询任务提交到线程池中异步执行,最后使用 `join()` 方法等待所有任务完成并获取结果,将结果到一个列表中 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值