SQL-запрос, чтобы изменить порядок номеров столбцов, чтобы они были нечетными или четными - PullRequest
1 голос
/ 30 июня 2011

Допустим, у меня есть столбец, который имеет 20 строк (это больше, но концепция будет верна для 20).Прямо сейчас столбец уникально пронумерован 1-20.Мне нужно выяснить запрос, хотя он изменит эту числовую схему с последовательной на последовательную с четными или нечетными числами.

Так, например, мне просто нужно создать столбец в таблице, где он нумеруется вчетные числа или нечетные числа.Поэтому после выполнения запроса на обновление он изменит данные моего столбца с 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

Есть ли запрос на обновление, который я мог бы выполнить для этого?

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Для четных чисел:

UPDATE YourTable
   SET YourColumn = YourColumn * 2;

Для нечетных чисел:

UPDATE YourTable
   SET YourColumn = YourColumn * 2 - 1;

Вы можете столкнуться с проблемами, только если ваша СУБД начнет проверять уникальность столбца слишком рано, что в конечном итоге является недостатком (или ограничением) СУБД. То есть: пока выполняется «четное» обновление, может быть еще не обновленная строка, содержащая значение 2, а также уже обновленная строка, содержащая значение 2 (первоначально 1). Если СУБД обеспечивает уникальность в каждой строке, это не удастся; но СУБД не должна этого делать.

1 голос
/ 30 июня 2011

Вы можете показывать свои строки в любом порядке.

Порядок строк с четными идентификаторами:

SELECT *
FROM yourTable
ORDER BY id MOD 2
       , id
...