2012-08-14 8 views
62

Come selezionare il numero di riga in postgres.Seleziona numero riga in postgres

ho provato questo:

select 
    row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum, 
    cgcode_odc_mapping_id 
    from access_odc.access_odc_mapping_tb 
    order by cgcode_odc_mapping_id 

e ottenuto questo errore:

 
ERROR: syntax error at or near "over" 
LINE 1: select row_number() over (ORDER BY cgcode_odc_mapping_id)as 

Ho controllato queste pagine: How to show row numbers in PostgreSQL query?


Questa è la mia domanda:

select row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,cgcode_odc_mapping_id from access_odc.access_odc_mapping_tb order by cgcode_odc_mapping_id 

questo è l'errore:

ERRORE: errore di sintassi in prossimità o "over" LINE 1: selezionare row_number() sopra (ORDER BY cgcode_odc_mapping_id) come

+3

'Non funziona' non ci dice nulla che possiamo aiutare con. Si prega di fornire messaggi di errore e/o altre informazioni pertinenti. Inoltre, si prega di specificare la versione di PostgreSQL che si sta utilizzando. – MatBailie

+0

Hai bisogno di una sequenza? – FabianoLothor

+0

possibile duplicato di [Come mostrare i numeri di riga nella query PostgreSQL?] (Http://stackoverflow.com/questions/3397121/how-to-show-row-numbers-in-postgresql-query) – vyegorov

risposta

115
SELECT tab.*, 
    row_number() OVER() as rnum 
    FROM tab; 

Here's la sezione del Documenti.

P.S. Questo, infatti, corrisponde completamente alla risposta nella domanda di riferimento.

+11

Si dovrebbe anche specificare un ordine nella clausola 'OVER':' OVER (ORDER BY id) '. Altrimenti l'ordine non è garantito. – AlexM

+2

@pumbo Appare row_number() restituisce "il numero di riga del set di risultati" (cioè sempre 1 2 3 4 ... se si specifica 'over()') tuttavia se si dispone di una query esterna riorganizzare l'ordine dei risultati di riferimento ref : http://stackoverflow.com/a/3397149/32453 commenti – rogerdpack

Problemi correlati