![]() |
select con columna autoincrental
Buenas a todos y todas,
Necesito hacer una select donde la primera columna sea un autoincremental que empieze en 1 y continue en incrementos de 1. Lo que necesito es tener una columna que me diga el numero de fila que representa esa fila. Algo asi select contador, codigo from articulos order by codigo resultado --> contado codigo 1 art1 2 art10 3 bec23 ...... Gracias |
Hola, se me ocurre una chapucilla. Genérate un generador llamado por ejemplo contador, antes de la consulta dices:
set generator contador to 0; y en la consulta dices: Select gen_id(contador, 1), codigo from articulos order by codigo; (de todas formas el "recno" en algún tipo de tabla también funciona) Saludos |
Hola rfernandez, prueba con esta consulta:
tu campo codigo no debe tener repetidos y mejor si colocas un filtro en el where si tienes muchos registros. Saluditos |
Gracias a los dos, haré pruebas.
La segunda opción me da que desde el punto de rendimiento va a ser muy pesada de ejecutar para consultas con muchos datos. Gracias nuevamente. |
La otra solución es crear un procedimiento almacenado, con un bucle FOR SELECT, e ir incrementando un contador en cada iteración del bucle.
Saludos. |
Si vas a mostrar los datos mediante Delphi puedes crear un campo calculado y le asignas el RecNo del Dataset asociado..
|
El Recno, como mínimo con TQuery de BDE contra Firebird no funciona.
Sobre el proceso almacenado es una opción pero tengo esta necesidad para multiples consultas y si tengo que hacer un SP para cada una es un latazo. me estoy planteando cargar un TClientDataSet a traves de la consulta y hay hacer el numerador. Gracias a todos. |
Cita:
Saludos. |
Resp
Haste y procedimiento almacenado.
Y si te preocupa que no puedas lanzar intrucciones de insercion actualizacion u elimincacion sobre dicho procedimiento. Complemeta el procedimiento con una vista actualizable. |
La franja horaria es GMT +2. Ahora son las 12:55:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi