none
funzione che ritorna S o N RRS feed

  • Domanda

  • Buon giorno a tutti,
    mi servirebbe creare su un data base Sql Server Express una funzione che mi ritorni il valore S oppure N.
    A questa funzione devo passare un ID numerico che la funzione stessa dovrà utilizzare per la lettura di una tabella: se il record viene trovato mi deve tornare S, in caso contrario N.
    Poi utilizzerò la funzione in una query:

    select Codice, Descrizione, MiaFunzione(ID) AS Componenti
    from Articoli
    where Codice between '0000' and '0999'

    Qualcuno mi può indicare come si fa la funzione? Oppure pensate si possa risolvere tutto all'interno della query "principale"?

    Grazie 1000.

    Ciao

    Beppe

    lunedì 21 gennaio 2019 11:02

Risposte

  • CREATE FUNCTION dbo.presenza (@codice char(4))  
    RETURNS char(1)  
    WITH EXECUTE AS CALLER  
    AS  
    BEGIN  
         DECLARE @risultato char(1);
         IF EXISTS (SELECT * FROM ARTICOLI WHERE CODICE = @codice) 
               SET @risultato = 'S';
         ELSE
               SET @risultato ='N';
         RETURN(@risultato);
    END;  
    GO  


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    lunedì 21 gennaio 2019 11:30
    Moderatore

Tutte le risposte

  • CREATE FUNCTION dbo.presenza (@codice char(4))  
    RETURNS char(1)  
    WITH EXECUTE AS CALLER  
    AS  
    BEGIN  
         DECLARE @risultato char(1);
         IF EXISTS (SELECT * FROM ARTICOLI WHERE CODICE = @codice) 
               SET @risultato = 'S';
         ELSE
               SET @risultato ='N';
         RETURN(@risultato);
    END;  
    GO  


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    lunedì 21 gennaio 2019 11:30
    Moderatore
  • CREATE FUNCTION dbo.presenza (@codice char(4))  
    RETURNS char(1)  
    WITH EXECUTE AS CALLER  
    AS  
    BEGIN  
         DECLARE @risultato char(1);
         IF EXISTS (SELECT * FROM ARTICOLI WHERE CODICE = @codice) 
               SET @risultato = 'S';
         ELSE
               SET @risultato ='N';
         RETURN(@risultato);
    END;  
    GO  


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    Ciao Edoardo,

    grazie per la risposta! È esattamente ciò che mi serviva.

    Grazie ancora.

    Buona giornata.

    Beppe

    lunedì 21 gennaio 2019 13:59