Этот код поможет вам разделить четные и нечетные числа.
// java code to segregate even odd
// numbers in an array
public class GFG {
// Function to segregate even
// odd numbers
static void arrayEvenAndOdd(
int arr[], int n)
{
int i = -1, j = 0;
while (j != n) {
if (arr[j] % 2 == 0)
{
i++;
// Swapping even and
// odd numbers
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
j++;
}
// Printing segregated array
for (int k = 0; k < n; k++)
System.out.print(arr[k] + " ");
}
// Driver code
public static void main(String args[])
{
int arr[] = { 1, 3, 2, 4, 7,
6, 9, 10 };
int n = arr.length;
arrayEvenAndOdd(arr, n);
}
}
Ненависть для высказывания этого, но MySQL
единственное RDBMS
из Большой четверки, которая не имеет этой функции.
В Oracle
:
SELECT *
FROM dual
CONNECT BY
level < n
В MS SQL
(до 100
строки):
WITH hier(row) AS
(
SELECT 1
UNION ALL
SELECT row + 1
FROM hier
WHERE row < n
)
SELECT *
FROM hier
или использование подсказки до 32768
WITH hier(row) AS
(
SELECT 1
UNION ALL
SELECT row + 1
FROM hier
WHERE row < 32768
)
SELECT *
FROM hier
OPTION (MAXRECURSION 32767) -- 32767 is the maximum value of the hint
В PostgreSQL
:
SELECT *
FROM generate_series (1, n)
В MySQL
, ничто.
Если я понимаю Вас, Вы хотите список consequtive чисел?
Просто составьте список:
create table artificial_range (id int not null primary key auto_increment, idn int);
insert into artificial_range (idn) values (0); --first row
insert into artificial_range(idn) select idn from artificial_range; --2nd
insert into artificial_range(idn) select idn from artificial_range; -- now 4 rows
insert into artificial_range(idn) select idn from artificial_range; --8
insert into artificial_range(idn) select idn from artificial_range; --16
insert into artificial_range(idn) select idn from artificial_range; --32
insert into artificial_range(idn) select idn from artificial_range; --64
insert into artificial_range(idn) select idn from artificial_range; --128
... и т.д., пока Вы не имеете, скажем, 1024.
update artificial_range set idn = id - 1 ;
- теперь у Вас есть ряд, уставившись 1 (идентификатор) и ряд, запускающийся в 0
Теперь соедините с ним или соедините с преобразованиями его:
create view days_this_century as
select date_add('2000-01-01', interval a.idn day) as cdate
from artificial_range;
Я не знаю, помогает ли это, но можно пронумеровать строки от каждого избранного оператора с sth. как:
НАБОР @NUM = 0;
ВЫБЕРИТЕ @NUM: = NUM+1 rowNumber, * ОТ...
И позже присоединитесь к ним на этом. В больших базах данных это может быть очень медленно.