У меня есть таблица MEN в SQL Server 2008, которая содержит 150 строк.
как я могу показать только четные или только нечетные строки?
Благодарим заранее
У меня есть таблица MEN в SQL Server 2008, которая содержит 150 строк.
как я могу показать только четные или только нечетные строки?
Благодарим заранее
Отъезд 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
Предполагая, что в вашей таблице есть поле с автоматической нумерацией "RowID", и вы хотите выбрать только записи, где RowID четный или нечетный.
Чтобы показать нечетное:
Select * from MEN where (RowID % 2) = 1
Чтобы показать четность:
Select * from MEN where (RowID % 2) = 0
FASTER: Побитовое выражение вместо модуля.
select * from MEN where (id&1)=0;
Случайный вопрос: действительно ли вы используете имена таблиц верхнего регистра? Обычно заглавные буквы зарезервированы для ключевых слов. (По соглашению)
запрос нечетного числа:
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
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
Попробуйте следующее:
нечетный:
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
Для записи четных значений:
выберите * из www, где mod (зарплата, 2) = 0;
Для записи нечетных значений:
выберите * из www, где mod (зарплата, 2)!= 0;
SELECT *
FROM
(
SELECT rownum rn, empno, ename
FROM emp
) temp
WHERE MOD(temp.rn,2) = 1
select * from Tablename
where id%2=0
Ниже приведено число четных чисел:: Выберите * из MEN, где Men_ID% 2 = 0;
Ниже приведен пример нечетного числа:: Выберите * из MEN, где Men_ID% 2!= 0;
Здесь MEN - это ваше имя_таблицы Men_ID - это столбец в таблице MEN.
Вот простой и прямой ответ на ваш вопрос, (я думаю). Я использую пример базы данных 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
Надеюсь, это ответ, который вы искали.
Чтобы получить даже записи
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;
НОЧНЫЕ СТРОКИ
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;
Чтобы выбрать нечетный идентификатор из таблицы:
select * from Table_Name where id%2=1;
Чтобы выбрать четный идентификатор из таблицы:
select * from Table_Name where id%2=0;
Попробуйте следовать
SELECT * FROM Worker WHERE MOD (WORKER_ID, 2) <> 0;
для 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