Visual Basic.NET - Migrar sentencia SQL Server a ODBC

   
Vista:

Migrar sentencia SQL Server a ODBC

Publicado por osvoy (10 intervenciones) el 25/02/2010 19:59:11
Hola a todos. Tengo una aplicación de .Net cuyas bases de datos iban con SQL Server Native pero tengo que migrarla a ODBC con lo que algunas cosas han dejado de funcionar.

Mi pregunta es ¿cual es el equivalente a ROW_NUMBER en una sentencia SQL para que funcione con ODBC?

P. D:
La SQL original:
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER ( ORDER BY Nombre) AS row FROM Productos WHERE FkCategoria=1 AND FKIdFabricante<>0) AS Alias WHERE row > 0 AND row <=5

El fallo:
"ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]'ROW_NUMBER' no es un nombre de función reconocido."
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Migrar sentencia SQL Server a ODBC

Publicado por osvoy (10 intervenciones) el 02/03/2010 11:48:40
No he encontrado alternativa. Si alguien lo sabe que no dude en decirlo. Mientras tanto voy a exponer la información de la que dispongo:

Al parecer no debe de haber alternativa. En el caso de que estuviéramos con MySQL se podría utilizar LIMIT, pero en el caso en el que estamos; he visto que hay que hacer por lo menos 4 sentencias SQL distintas para emular el mismo comportamiento.
Se trataría de jugar con TOP y con el orden de recuperar los datos. Por ejemplo, los 5 primeros, TOP5. Los siguientes TOP 5 WHERE Id ordenado sea mayor al id último anterior . Los 5 últimos TOP 5 ordenados por DESC y nueva select para ordenarlos por ASC. Mas o menos eso es lo que he encontrado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar