Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Order by su campo a volte null

    Salve a tutti avrei questo problema.
    Dovrei ordinare dei record per un campo data che potrebbe anche contenere dei valori null.
    Il problema è che se ordino in maniera normale prima mi mette i record con campo null, mentre se ordino con "DESC" prima ovviamente mi mette i record con campo data valorizzato ma non è l'ordinamento che vorrei.
    Esiste un modo per ordinare i record solo se il campo non è vuoto?
    Per esempio esiste una "order by if" o roba simile?

    Spiegazione:

    order by campo --> ottengo
    NULL;
    NULL;
    20/01/2010;
    22/01/2010;

    order by campo desc --> ottengo
    22/01/2010;
    20/01/2010;
    NULL;
    NULL;

    Io invece desidero questo ordinamento:
    20/01/2010;
    22/01/2010;
    NULL;
    NULL;


    E' possibile?
    Grazie.

  2. #2
    ----------------------------------------------------
    anche tu contagiato dal virus che impedisce di rispettare il regolamento e di indicare di quale db si sta parlando
    ----------------------------------------------------

  3. #3
    vi chiedo scusa mi è venuto in mente dopo e se può servire a qualcuno ho anche già risolto...

    Codice PHP:
    order by CASE WHEN campo is null THEN 99 ELSE 1 END,campo 
    Grazie a tutti cmq!



    p.s: MYSQL!

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Ti consiglio di testare bene l'ordinamento.

    potresti avere per esempio

    20/01/2010
    20/02/2010
    25/01/2010
    ecc
    NULL
    NULL


    Io su SQLServer devo mettere prima l'anno oi il mese poi il giorno
    ma non conosco MySql

  5. #5
    si si la data l'ho scritta io così per farla leggere meglio ma su mysql le data sono 2010-02-01 per esempio.
    Thanks.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da kontimatteo
    vi chiedo scusa mi è venuto in mente dopo e se può servire a qualcuno ho anche già risolto...

    Codice PHP:
    order by CASE WHEN campo is null THEN 99 ELSE 1 END,campo 
    Grazie a tutti cmq!



    p.s: MYSQL!
    Puoi anche fare così

    codice:
    select * from tabella
    order by isnull(campo),campo

  7. #7
    grazie utilissimo!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.