Replace the value of NULL with a fixed value in a Join SQL Server

0

I'm joining two tables in SQL using a LEFT OUTER JOIN.

This is my query:

SELECT        V_InvoiceHeader.IDFactura, V_InvoiceHeader.FechaDocumento, V_InvoiceHeader.NombreCliente, V_InvoiceHeader.NIT, V_InvoiceHeader.DireccionFacturacion, V_InvoiceHeader.FOLIO, V_InvoiceHeader.Subfolio, 
                         V_InvoiceHeader.Habitacion, V_InvoiceHeader.SERIE, V_InvoiceHeader.NumeroDoc, V_InvoiceHeader.IDVendor, CASE IDClienteIQware WHEN 'CF' THEN '0' END AS IDClienteIQware, ClientesCXC.IDSap, 
                         V_InvoiceHeader.DocType
FROM            V_InvoiceHeader LEFT OUTER JOIN
                         ClientesCXC ON V_InvoiceHeader.NIT = ClientesCXC.NIT

And this is an example of the results:

All the NULL values I have in the IDSAP column is because it does not match the second table (ClientsCxC). I would like to replace that value so that instead of returning a null value, I return the value 'CIQware'. Is this possible?

    
asked by Gio Gómez 30.11.2018 в 18:36
source

2 answers

4

You can use the ISNULL () to automatically change the value when it detects a null:

SELECT V_InvoiceHeader.IDFactura
    ,V_InvoiceHeader.FechaDocumento
    ,V_InvoiceHeader.NombreCliente
    ,V_InvoiceHeader.NIT
    ,V_InvoiceHeader.DireccionFacturacion
    ,V_InvoiceHeader.FOLIO
    ,V_InvoiceHeader.Subfolio
    ,V_InvoiceHeader.Habitacion
    ,V_InvoiceHeader.SERIE
    ,V_InvoiceHeader.NumeroDoc
    ,V_InvoiceHeader.IDVendor
    ,CASE IDClienteIQware
        WHEN 'CF'
            THEN '0'
        END AS IDClienteIQware
    ,ISNULL(ClientesCXC.IDSap,'CIQware')
    ,V_InvoiceHeader.DocType
FROM V_InvoiceHeader
LEFT JOIN ClientesCXC ON V_InvoiceHeader.NIT = ClientesCXC.NIT
    
answered by 30.11.2018 / 18:54
source
1

To do this you only have to make a CASE as follows:

CASE
   WHEN ClientesCXC.IDSap IS NULL THEN 'CIQware'
END

With that should be enough:)

    
answered by 30.11.2018 в 18:45