Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    [DATABASE] Parametro NULL

    Ho una sotred procedure che accetta in input un parametro... Questo parametro può anche essere null...

    ora io hio questa select
    Codice PHP:
    SELECT *
    FROM ANNUNCI
    WHERE ID_CATEGORIA 
    = @par_id_categoria
    Se il parametro è null dovrebbe restituirmi tutto (quindi non dovrei avere la where)...
    Ora risolvere la questione con un codice del tipo:
    Codice PHP:
    if @par_id_categoria == null 
    {
          
    SELECT *
            
    FROM ANNUNCI;
    }
    else 
    {
        
    SELECT *
          
    FROM ANNUNCI
        WHERE ID_CATEGORIA 
    = @par_id_categoria;

    sembra brutto.... come si risolvono solitamente queste cose? Potete adattare il codice a qualunque tipo di db

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    non c'è una soluzione standard al problema.
    Nella mia esperienza mi è capitato di vedere differenti soluzioni.
    La principale è quella di sfruttare linguaggi di programmazione che compongono le where conditions in maniera dinamica.

    Con linguaggi meno flessibili mi è capitato di vedere soluzioni più "ingegnose", come ad esempio quello di utilizzare where conditions con la clausula "between" per cui, nel caso in cui il valore sia passato i due estremi del between coincidono, mentre nel caso in cui il valore non sia passato i due estremi divergono fino ai massimi valori.

    codice:
    SELECT * 
          FROM ANNUNCI 
        WHERE ID_CATEGORIA BETWEEN @par_id_categoria_min AND @par_id_categoria_max
    Un po' si perde in performance, ma con tabelle ben indicizzate, la perdita è il più delle volte accettabile.
    ciao
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

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.