I would like to improve this code so I DO NOT REPEAT THE SAME CODE IN THE TWO IFS. I am not in the process of using procedures because I see no need.
DECLARE @Ordem VARCHAR (7), @Valor VARCHAR(10)
SET @Ordem = 'E'
IF @Ordem = 'E'
BEGIN
SELECT
P.ParcDocFinDupNum,P.ParcDocFinSeq,P.ParcDocFinDesmPag,P.ParcDocFinDataEmissao,P.ParcDocFinDataVenc,
P.BcoNum,P.TipoCobCod,P.ParcDocFinValOrig,P.ParcDocFinValor, P.DocFinChv,E.EntNome,
D.EmpCod,D.DocFinTipoLanc,D.DocFinProjecao, D.DocFinChv, D.EntCod, D.DocFinEspec, GetDate() as DataHoje
FROM DOC_FIN D
INNER JOIN PARC_DOC_FIN P ON D.EntCod = P.EntCod
INNER JOIN ENTIDADE E ON E.EntCod = P.EntCod
WHERE
D.DocFinTipoLanc = 'PAG'
AND ('Todos' = 'Não' OR D.DocFinProjecao = 'Não')
ORDER BY E.EntNome ASC, RAND()
END
IF @Ordem = 'V'
SELECT
P.ParcDocFinDupNum,P.ParcDocFinSeq,P.ParcDocFinDesmPag,P.ParcDocFinDataEmissao,P.ParcDocFinDataVenc,
P.BcoNum,P.TipoCobCod,P.ParcDocFinValOrig,P.ParcDocFinValor, P.DocFinChv,E.EntNome,
D.EmpCod,D.DocFinTipoLanc,D.DocFinProjecao, D.DocFinChv, D.EntCod, D.DocFinEspec, GetDate() as DataHoje
FROM DOC_FIN D
INNER JOIN PARC_DOC_FIN P ON D.EntCod = P.EntCod
INNER JOIN ENTIDADE E ON E.EntCod = P.EntCod
WHERE
D.DocFinTipoLanc = 'PAG'
AND ('Todos' = 'Não' OR D.DocFinProjecao = 'Não')
ORDER BY convert(varchar,P.ParcDocFinDataVenc,103), E.EntNome ASC
END