Подтвердить что ты не робот

Как показывать только четные или нечетные строки в SQL Server 2008?

У меня есть таблица MEN в SQL Server 2008, которая содержит 150 строк.

как я могу показать только четные или только нечетные строки?

Благодарим заранее

4b9b3361

Ответ 1

Отъезд ROW_NUMBER()

SELECT t.First, t.Last
FROM (
    SELECT *, Row_Number() OVER(ORDER BY First, Last) AS RowNumber 
            --Row_Number() starts with 1
    FROM Table1
) t
WHERE t.RowNumber % 2 = 0 --Even
--WHERE t.RowNumber % 2 = 1 --Odd

Ответ 2

Предполагая, что в вашей таблице есть поле с автоматической нумерацией "RowID", и вы хотите выбрать только записи, где RowID четный или нечетный.

Чтобы показать нечетное:

Select * from MEN where (RowID % 2) = 1

Чтобы показать четность:

Select * from MEN where (RowID % 2) = 0

Ответ 3

FASTER: Побитовое выражение вместо модуля.

select * from MEN where (id&1)=0;

Случайный вопрос: действительно ли вы используете имена таблиц верхнего регистра? Обычно заглавные буквы зарезервированы для ключевых слов. (По соглашению)

Ответ 4

запрос нечетного числа:

SELECT *
  FROM   ( SELECT rownum rn, empno, ename
           FROM emp
         ) temp
  WHERE  MOD(temp.rn,2) = 1

четный номер запроса:

SELECT *
  FROM   ( SELECT rownum rn, empno, ename
           FROM emp
         ) temp
  WHERE  MOD(temp.rn,3) = 0

Ответ 5

  SELECT * FROM (SELECT ROW_NUMBER () OVER (ORDER BY sal DESC) row_number, sr,sal FROM empsal) a WHERE (row_number%2) = 1

и

      SELECT * FROM (SELECT ROW_NUMBER () OVER (ORDER BY sal DESC) row_number, sr,sal FROM   empsal) a WHERE (row_number%2) = 0

Ответ 6

Попробуйте следующее:

нечетный:

select * from( 
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber', 
FROM table1
) d where (RowNumber % 2) = 1 

четный:

select * from( 
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber', 
FROM table1
) d where (RowNumber % 2) = 0

Ответ 7

Для записи четных значений:

выберите * из www, где mod (зарплата, 2) = 0;

Для записи нечетных значений:

выберите * из www, где mod (зарплата, 2)!= 0;

Ответ 8

SELECT *
  FROM   
  ( 
     SELECT rownum rn, empno, ename
     FROM emp
  ) temp
  WHERE  MOD(temp.rn,2) = 1

Ответ 9

select * from Tablename 
where id%2=0

Ответ 10

Ниже приведено число четных чисел:: Выберите * из MEN, где Men_ID% 2 = 0;

Ниже приведен пример нечетного числа:: Выберите * из MEN, где Men_ID% 2!= 0;

Здесь MEN - это ваше имя_таблицы Men_ID - это столбец в таблице MEN.

Ответ 11

Вот простой и прямой ответ на ваш вопрос, (я думаю). Я использую пример базы данных TSQL2012 и возвращаю только четные или нечетные строки на основе "employeeID" в таблице "HR.Employees".

USE TSQL2012;
GO

Вернуть только четные числа employeeID:

SELECT *
FROM HR.Employees
WHERE (empid % 2) = 0;
GO

Возврат только нечетных номеров employeeID:

SELECT *
FROM HR.Employees
WHERE (empid % 2) = 1;
GO

Надеюсь, это ответ, который вы искали.

Ответ 12

Чтобы получить даже записи

select *
from (select id,row_number() over (order by id) as r from table_name) T
where mod(r,2)=0;

Чтобы получить странные записи

select *
from (select id,row_number() over (order by id) as r from table_name) T
where mod(r,2)=1;

Ответ 13

База данных Oracle

НОЧНЫЕ СТРОКИ

select * from (select mod(rownum,2) as num , employees.* from employees) where num =0;

ДАЖЕ СТРОКИ

select * from (select mod(rownum,2) as num , employees.* from employees) where num =1; 

Ответ 14

Чтобы выбрать нечетный идентификатор из таблицы:

select * from Table_Name where id%2=1;

Чтобы выбрать четный идентификатор из таблицы:

select * from Table_Name where id%2=0;

Ответ 15

Попробуйте следовать

SELECT * FROM Worker WHERE MOD (WORKER_ID, 2) <> 0;

Ответ 16

для SQL> нечетное:

select * from id in(select id from employee where id%2=1)

для SQL> Четный:

select * from id in(select id from employee where id%2=0).....f5