【发布时间】:2018-08-20 00:18:20
【问题描述】:
我正在尝试生成一个“性别组合”列,该列创建了详尽的交互术语类别,如下表所示。有没有一种简单的方法可以在 SQL(微软服务器)中做到这一点?
+--------------+--------------+--------------+---------------------+
| EMP 1 Gender | EMP 2 Gender | Emp 3 Gender | Gender Combinations |
+--------------+--------------+--------------+---------------------+
| Male | | | 1 Male |
| Female | | | 1 Female |
| | Male | | 1 Male |
| | Female | | 1 Female |
| | | Male | 1 Male |
| | | Female | 1 Female |
| Male | Female | | 1 Male, 1 Female |
| | Male | Female | 1 Male, 1 Female |
| Male | | Female | 1 Male, 1 Female |
| | Female | Male | 1 Male, 1 Female |
| Female | | Male | 1 Male, 1 Female |
| Female | Male | | 1 Male, 1 Female |
| | Female | Male | 1 Male, 1 Female |
| Male | | Female | 1 Male, 1 Female |
| | Male | Female | 1 Male, 1 Female |
| Male | Male | Female | 1 Male, 1 Female |
| Male | Female | Male | 2 Males, 1 Female |
| Female | Male | Male | 1 Female, 2 Males |
| Female | Female | Male | 2 Females, 1 Male |
| Female | Male | Female | 2 Females, 1 Male |
| Male | Female | Female | 2 Females, 1 Male |
| Male | Male | Male | 3 Males |
| Female | Female | Female | 3 Females |
+--------------+--------------+--------------+---------------------+
【问题讨论】:
-
我不知道如何在纯
SQL中执行此操作,但我可以帮助您确定您的目标。这些被称为重复排列。在标准编码中,算法并不难。如果您认为这会有所帮助,我可以发布它。 -
更好的是,这里有一个指向code review 的链接。这是一个不错的链接,带有对geeksforgeeks 的解释。我想我应该注意,在仔细查看您的输出之后,您不是在重复排列之后,或者您缺少结果(至少 4 个)。
-
你试过什么?你能给我们看一些代码吗?
-
@JosephWood 基本上在 SQL 中,您可以进行交叉连接(是的,它确实有用)来创建集合中所有元素的笛卡尔积。所以一点也不难。
标签: sql sql-server combinations interaction generate