Este tipo de consultas nos sirven para recibir parametros y aunque no recibamos nada regrese algun valor
declare @var1 int
declare @var2 bit
declare @var3 int
set @var1 = 2.2
set @var2 = NULL
set @var3 = NULL
select *
from tabla
where 1= CASE WHEN @var1 > 10 THEN 1 WHEN @var1 IS NULL THEN 1 END
and 1 = CASE WHEN @var2 < 10 THEN 1 WHEN @var2 IS NULL THEN 1 END
and 1 = CASE WHEN @var3 = 10 THEN 1 WHEN @var3 IS NULL THEN 1 END
Este order by sirve si tienen el mismo query pero tal vez lo quieran ordenar por nombre o por clave etc con la opcion que le pasen es con la que se ordenara su query
ORDER BY (CASE WHEN @Orden = 'Opc1' THEN max(t1.campo)
WHEN @Orden = 'Opc2' THEN max(t2.campo)
WHEN @Orden = 'Opc3' THEN max(t3.campo)
END)
-------------- o la siguiente opcion ------------------
Declare @campo
Set @campo = 'el campo a ordenar'
ORDER BY @campo
Listo espero que les haya servido ya que en ocasiones repetimos codigo
0 comentarios:
Publicar un comentario