SQL Server First Función a través de JDBC
-
29-10-2019 - |
Pregunta
Estoy construyendo una aplicación en Cold Fusion que tiene una conexión de base de datos SQL Server. Necesito registros grupales y solo devolver el primero en el grupo. Escribí la siguiente consulta en Coldfusion.
SELECT FIRST(ID)
FROM table
GROUP BY NAME
Que está devolviendo el siguiente error:
Macromedia] [controlador SQLServer JDBC] [SQLServer] 'Primero' no es un nombre de función incorporado reconocido.
¿Es la forma de utilizar la primera función en una consulta de FryFusion?
¿Existe una forma alternativa de lograr esto?
*No tengo acceso directo a la base de datos. Solo un acceso a la conexión de datos de fusión en frío
Solución
FIRST
no es válido en SQL Server (debe estar pensando en el acceso). Quizás te refieres:
SELECT NAME, MIN(ID)
FROM dbo.table
GROUP BY NAME;
En SQL Server "Denali" podrá usar FIRST_VALUE
/LAST_VALUE
junto con las funciones de ventanas.
Otros consejos
El primero y el último no existen en SQL Server 2005 o 2008, pero en SQL Server 2012 hay una función FirstValue, LastValue. Traté de implementar el agregado primero y durar para SQL Server 2005 y llegué al obstáculo de que SQL Server garantiza el cálculo del agregado en un orden definido. (Consulte el atributo sqluserDefinedAgregateAtTribute qué elementos están agregados.