Guardar resultado de TOP a variable

 Buenas tardes queridos lectores, el día de hoy les traigo este post, y hablaremos sobre como guardar en una variable el resultado de una consulta con la clausula TOP, en ocasiones nos resultará útil una consulta de este tipo, y con mayor razón guardarla en una variable, aunque no siempre es tan sencillo.



Para el siguiente ejemplo consideremos la siguiente base de datos


CREATE TABLE PRUEBAS 

(ID INT IDENTITY,

CODIGO VARCHAR(MAX),

NOMBRE VARCHAR(MAX),

APELLIDO VARCHAR(MAX),

MONTO DECIMAL(8,2))


INSERT INTO PRUEBAS (CODIGO, NOMBRE, APELLIDO, MONTO) VALUES

('001', 'EMMANUEL', 'URIAS', 143894),

('002', 'CESAR', 'YAÑEZ', 123987),

('003', 'PAOLA', 'ALVAREZ', 124398.23),

('004', 'IVAN', 'VERA', 98732.12)




Clausula TOP

Primero comenzaremos explicando cual es la función la clausula TOP, en la base de datos anterior tenemos una tabla de 4 registros, nosotros queremos obtener el top 1 de monto, es fácil hacerlo con una función MAX, pero el tema que nos toca el la clausula TOP. Pues bien, hagamos el ejemplo y lo ejecutaremos de la siguiente manera

SELECT TOP 1 CODIGO FROM PRUEBAS ORDER BY MONTO DESC

Guardar el resultado de TOP a variable


Con eso obtendremos el código que tiene el monto más alto, ahora lo guardaremos en una variable

declare @codigo as varchar(3)
select @codigo = top 1 from pruebas order by monto desc

Este código retorna el siguiente error

Msg 156, Level 15, State 1, Line 21
Incorrect syntax near the keyword 'top'.

Ese error es debido a que no es posible en sql guardar el resultado del TOP de esa manera, para eso haremos uso del parámetro SET ROWCOUNT

SET ROWCOUNT

Es un parámetro del sistema que afectará a la instancia cuyo valor indicado será el número de registros a mostrar, en este caso solo queremos un solo registro. Es importante regresarlo a 0, donde 0 es el valor ilimitado de registros

SET ROWCOUNT 1
declare @codigo as varchar(3)
select @codigo = CODIGO from pruebas order by monto desc
SET ROWCOUNT  0
PRINT @CODIGO




Con este pequeño código ya podrán recuperar la variable guardada como si fuera el TOP

Espero que este post haya sido de su agrado y utilidad, les invito a compartir, comentar o dar algun clic en los anuncios patrocinados. Saludos


No hay comentarios.:

Publicar un comentario

Featured Post

Como saber la versión de SQL que tengo

 Buenas tardes queridos lectores, el día de hoy les traigo un post muy básico, pero útil en determinadas circunstancias, cuando queremos sab...