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

    [SQL] valori distinti di una colonna

    vorrei costruire una query che mi restituisca, per ogni colonna di una tabella, null se in quella colonna sono presenti più valori, oppure l'unico valore presente

    mi spiego con un esempio: dalla tabella:

    codice:
    id | nome    | cognome | colore | anno |
    1  | mario   | rossi   | verde  | 2012 |
    2  | giorgio | rossi   | blu    | 2012 |
    3  | paolo   | rossi   | blu    | 2012 |
    vorrei ottenere
    codice:
    id | nome    | cognome | colore | anno |
       |         | rossi   |        | 2012 |
    in quanto nella colonna 'cognome' è presente un solo valore, come anche nella colonna 'anno'

    che sia possibile farlo con una sola query?

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Se il max della colonna = min della colonna
    __ sceive max della colonna
    __ diversamente null



  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    39
    Originariamente inviato da nman
    Se il max della colonna = min della colonna
    __ sceive max della colonna
    __ diversamente null



    Io stavo giocando con il count(*) e i distinct ma la query stava diventando troppo grande..

    La tua mi sembra decisamente l'idea migliore!

  4. #4
    Originariamente inviato da nman
    Se il max della colonna = min della colonna
    __ sceive max della colonna
    __ diversamente null


    quindi qualcosa del tipo

    SELECT IF(MAX(nome)=MIN(nome), nome, null) , IF(MAX(anno)=MIN(anno), anno, null) etc...

    sì, dovrebbe andare. Per qualche motivo scartavo questa ipotesi. Forse mi ero convinto che max e min funzionassero solo per valori numerici e non per dati tipo stringa...

    grazie

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Si qualcosa di simile.

    Nel dettaglio dipende dal DB che usi

    ( se tu lo avessi scritto potevo essere piu preciso )



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.