【问题标题】:Cross product of columns [closed]列的叉积[关闭]
【发布时间】:2013-11-26 10:44:32
【问题描述】:

我们如何对表的列进行叉积。

假设我有包含这些数据的表格。

Name                 Age                  spend                Gender

De                  26                    10                    M
Fu                  27                    29                    F

我想要的输出应该是

De 26 10 M
Fu 26 10 M
De 26 29 M
Fu 26 29 M
De 27 10 M
Fu 27 10 M 
De 27 29 M
Fu 27 29 M

....

我通过将所有列放在一个过程中的不同表中来做同样的事情。

【问题讨论】:

    标签: sql database stored-procedures plsql


    【解决方案1】:

    你可以试试这个吗?:

    更新

    你可以在这里测试。 http://sqlfiddle.com/#!2/9264d7/2/0

    SELECT *
    FROM
    (
        SELECT DISTINCT name
        FROM test
    ) x CROSS JOIN 
    (
        SELECT DISTINCT age
        FROM test
    ) y CROSS JOIN
    (
        SELECT DISTINCT spent
        FROM test
    ) z CROSS JOIN
    (
        SELECT DISTINCT gender
        FROM test
    ) a;
    

    【讨论】:

    • 不,它不起作用。
    • @Java_Alert 已更新。我已经测试过了。似乎运作良好。
    • 非常感谢这个解决方案有效!!!
    • @Java_Alert DISTINCT 如果有唯一值,则不需要。
    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2018-09-20
    • 2015-05-18
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2019-09-19
    • 2011-06-30
    相关资源
    最近更新 更多