假设我有一个有20行的列(它更多,但这个概念适用于20行)。现在,该列的编号是1-20。不过,我需要找出一个查询,它会将编号方案从顺序更改为仅包含偶数或奇数的顺序。
因此,例如,我只需要在表中创建一列,该列的编号为偶数或奇数。因此,在运行update查询之后,它会将我的列数据从1-20更改为2-40 (仅限偶数)或1-39 (仅限奇数)。
如果这没有意义,或者如果你想不出我需要它的原因,我很抱歉,但以一种奇怪的方式,我确实需要它。
编辑:
由于这是不合理的事实,我将尝试更多地澄清。
我有一列当前排序为1-10的列
1,2,3,4,5,6,7,8,9,10.
我想在列上执行一个更新查询,使它看起来像这样:
1,3,5,7,9,11,13,15,17,19
或
2,4,6,8,10,12,14,16,18,20
有没有我可以运行的update查询?
发布于 2011-06-30 08:52:31
对于偶数:
UPDATE YourTable
SET YourColumn = YourColumn * 2;对于奇数:
UPDATE YourTable
SET YourColumn = YourColumn * 2 - 1;只有当您的DBMS过早地开始检查列的唯一性时,您才会遇到麻烦,这最终是DBMS的一个缺陷(或限制)。也就是说:当'even‘更新正在运行时,可能存在一个包含值2的尚未更新的行,以及一个包含值2(最初为1)的已更新的行。如果DBMS在每一行强制唯一性,这将失败;但DBMS不应该这样做。
发布于 2011-06-30 08:37:34
您可以按您喜欢的任何顺序显示行。
首先对ids为偶数的行进行排序:
SELECT *
FROM yourTable
ORDER BY id MOD 2
, idhttps://stackoverflow.com/questions/6528815
复制相似问题