我有一个 SQL Server DB,其中包含列 NM1-NM69 及其字段值中的相应数字:
NM1 | NM2 | NM3 | NM4 | NM5 |...... | NM69
------------------------------------------
1 | 2 | 3 | 4 | 5 |...... | 69
我试图找出这个列表的所有 5 个数字排列。我如何以简单易行(好..更容易)的方式做到这一点?
示例输出:
PM NM1 | PM NM2 | PM NM3 | PM NM4 | PM NM5 |
--------------------------------------------
68 | 2 | 55 | 43 | 52 |
编辑:我正在使用 SQL
您将数据 UNPIVOT 放入一列,然后 CROSS JOIN 五次。这是一个 SQL Fiddle 排列 5 列选择 3. SQL Fiddle
DECLARE @t TABLE (Field1 INT, Field2 INT, Field3 INT, Field4 INT, Field5 INT)
INSERT INTO @t VALUES (1,2,3,4,5)
; WITH cte AS (
SELECT u.FieldValue
FROM @t
UNPIVOT (
[FieldValue] FOR [FieldName] IN (
Field1, Field2, Field3, Field4, Field5
)
) u
)
SELECT
t1.FieldValue AS PermuteField1,
t2.FieldValue AS PermuteField2,
t3.FieldValue AS PermuteField3
FROM
cte AS t1 CROSS JOIN
cte AS t2 CROSS JOIN
cte AS t3
WHERE
t1.FieldValue <> t2.FieldValue AND
t1.FieldValue <> t3.FieldValue AND
t2.FieldValue <> t3.FieldValue
如何在两个值之间创建升序列表?例如,11到16之间的列表:
如何创建一个列表,其中的值介于我输入的两个值之间?例如,为11到16之间的值生成以下列表:
问题内容: 如何创建一个包含两个输入值之间的值的列表?例如,将为11到16的值生成以下列表。 问题答案: 使用。在Python 2.x中,它返回一个列表,因此您需要做的是: 在Python 3.x中是迭代器。因此,您需要将其转换为列表: 注意 :第二个数字是唯一的。因此,这里需要为= 编辑: 要回答有关增加by的问题,最简单的选择可能是使用numpy 和:
问题内容: 我在尝试实现的算法周围束手无策。我有两个列表,希望从两个列表中进行特定组合。 这是一个例子。 在这种情况下,输出为: 我的名字可能比数字多,即。这是一个具有3个名称和2个数字的示例: 输出: 问题答案: 注意 :此答案是针对上面提出的特定问题的。如果您来自Google,只是想寻找一种使用Python获得笛卡尔积的方法,或者您可能正在寻找简单的列表理解方法- 请参见其他答案。 假设。然后
我有一个,它以字符、整数的形式存储密文块中每个字母的频率。然后按最频繁的降序将地图排序为。 然后,我将这些频率与已知的字母频率列表进行比较,以尝试猜测密码字母是什么。我遇到的问题是,如果两个或多个字母出现的次数相同。 例如,如果我们采取以下措施: 密码文本中最常见的5个字母是desc,然后是字母频率: 然后可以公平地假设映射到,因为它是最常见的,其次是映射到等等。 如果字母频率为: 还不清楚、还是
问题内容: 我正在寻找一种最有效的方法,根据序列中缺少的数字将数字列表分成较小的列表。例如,如果初始列表为: 该函数将产生: 要么 会导致: 问题答案: 旧Python文档中的Python 3版本代码: 每当关键函数更改其返回值时,itertools模块中的函数都会生成中断。诀窍在于,返回值是列表中的数字减去列表中元素的位置。当数字中有空格时,此差异会更改。 该功能来自operator模块,您必须