Ho una tabella MEN in SQL Server 2008 che contiene 150 righe.come mostrare solo le righe pari o dispari in sql server 2008?
come posso mostrare solo le righe pari o solo dispari?
grazie in anticipo di
Ho una tabella MEN in SQL Server 2008 che contiene 150 righe.come mostrare solo le righe pari o dispari in sql server 2008?
come posso mostrare solo le righe pari o solo dispari?
grazie in anticipo di
Partenza 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
Sì, non ho avuto la possibilità di creare una query prima di postarla ... ma ho esteso la mia risposta. –
Assumendo che il tavolo ha campo auto-numerate "RowID" e si desidera selezionare solo i record in cui RowID è pari o dispari.
Per mostrare dispari:
Select * from MEN where (RowID % 2) = 1
Per mostrare anche:
Select * from MEN where (RowID % 2) = 0
Non puoi mai assumere spazi vuoti! Verranno registrati record e transazioni annullate. – HLGEM
Mai dire mai. A volte puoi. Ad esempio se hai una tabella di definizione statica. Ma la domanda non è chiara per assumere qualsiasi cosa, quindi hai ragione. –
Prova questa:
dispari:
select * from(
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber',
FROM table1
) d where (RowNumber % 2) = 1
anche:
select * from(
SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY col1 DESC) AS 'RowNumber',
FROM table1
) d where (RowNumber % 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
seguito è per andare a prendere numero pari :: Select * from MEN dove Men_ID% 2 = 0;
Il seguente è per il recupero del numero dispari :: Selezionare * da MEN dove Men_ID% 2! = 0;
Qui MEN è il nome_tabella Men_ID è la colonna nella tabella MEN.
SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY sal DESC) row_number, sr,sal FROM empsal) a WHERE (row_number%2) = 1
e
SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY sal DESC) row_number, sr,sal FROM empsal) a WHERE (row_number%2) = 0
per valori di registrazione:
select * from www dove mod (stipendio, 2) = 0;
Per i valori dispari cronaca:!
select * from www dove mod (stipendio, 2) = 0;
PIÙ VELOCE: Bitwise anziché modulo.
select * from MEN where (id&1)=0;
Domanda casuale: Utilizzi effettivamente nomi di tabelle maiuscole? Solitamente le lettere maiuscole sono riservate per le parole chiave. (Per convenzione)
dispari interrogazione numero:
SELECT *
FROM (SELECT rownum rn, empno, ename
FROM emp
) temp
WHERE MOD(temp.rn,2) = 1
anche interrogazione numero:
SELECT *
FROM (SELECT rownum rn, empno, ename
FROM emp
) temp
WHERE MOD(temp.rn,3) = 0
Pari o anche secondo quali criteri? Potresti voler dire A, C, E, ... o B, D, F, ecc.O vuoi dire indice di riga secondo la clausola ORDER BY ... ma poi cosa ordineresti? – gbn