| gianni mancini |
ordinare query sql su campi scelti
devo ordinare i risultati di una ricerca
a seconda dei campi scelti dall'utente in maniera crescente o decrescente, ho utilizzato la seguente query:(che ordina bene nel caso si trattino di date mentre da errore per campi di tipo nVarChar.) INSERT INTO #TempJt ( CG_Id_CodUnicoJT, S.NomeStato, CG_DataEmiss, CG_CodFiliale, CM_Nominativo, CM_Indirizzo, CM_Localita, CM_Prov, CG_CatCliente, CM_TargaVettura,U.Id_TipoUtente, CG_LastIdUtente,sort_1,sort_2 ) SELECT CG_Id_CodUnicoJT,S.NomeStato, CG_DataEmiss, CG_CodFiliale, CM_Nominativo, CM_Indirizzo, CM_Localita, CM_Prov, CG_CatCliente, CM_TargaVettura,U.Id_TipoUtente, CG_LastIdUtente, CASE WHEN @SortOrder = 2 THEN CG_DataEmiss WHEN @SortOrder =3 THEN CG_LastIdUtente WHEN @SortOrder = 4 THEN CM_TargaVettura WHEN @SortOrder = 5 THEN CG_Id_CodUnicoJT ELSE NULL END AS sort_1, CASE WHEN @SortOrder = 1 THEN CG_DataEmiss ELSE NULL END AS sort_2 FROM TBLU_jt INNER JOIN TBLU_Stati as S ON CG_Id_StatoJT=S.Id_Stato LEFT JOIN TBLU_Utenti as U ON U.Id_Utente=CG_LastIdUtente left JOIN TBLU_Utenti as TipoU ON TipoU.Id_Utente = CG_CodFiliale WHERE CG_CodFiliale LIKE '%' + @Assegmamento + '%' AND CG_CatCliente LIKE '%' +@CatCliente+ '%' and CG_Id_CodUnicoJT LIKE '%' +@NJt+ '%' AND CM_Nominativo LIKE '%' + @Nominativo + '%' AND CM_TargaVettura LIKE '%' + @Targa + '%' AND CG_DataEmiss LIKE '%' + @Data +'%' AND F_NAC LIKE '%' +@NAC+ '%' AND TipoU.Id_TipoUtente =2 ORDER BY sort_1 desc, sort_2 asc |