You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Oracle SQL生成FRUITS表中水果的有序两两非重复配对结果?

Oracle SQL实现水果两两非重复组合查询

要生成需求中的两两不同水果组合结果集,可以通过自连接(Self-Join)实现,具体如下:

实现代码

SELECT 
    f1.fruit_name AS Resulting_column_1,
    f2.fruit_name AS Resulting_column_2
FROM 
    fruits f1
CROSS JOIN 
    fruits f2
WHERE 
    f1.fruit_name != f2.fruit_name
ORDER BY 
    f1.fruit_name, f2.fruit_name;

代码说明

  1. 自连接逻辑:将fruits表自身分别作为两个表(别名f1和f2)进行交叉连接,会生成所有可能的行组合(包括自身匹配的情况)。
  2. 筛选条件:WHERE f1.fruit_name != f2.fruit_name排除了水果名称相同的组合,只保留两两不同的配对。
  3. 排序:ORDER BY子句让结果按照第一列、第二列的水果名称排序,和需求中的输出顺序一致。

你也可以用内连接的写法达到相同效果,逻辑等价:

SELECT 
    f1.fruit_name AS Resulting_column_1,
    f2.fruit_name AS Resulting_column_2
FROM 
    fruits f1
JOIN 
    fruits f2 ON f1.fruit_name != f2.fruit_name
ORDER BY 
    f1.fruit_name, f2.fruit_name;

内容的提问来源于stack exchange,提问作者JB999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:20:01