none
validar que un campo este vacìo en sql RRS feed

  • Pregunta

  • saludos tengo un condicional en el cual consulto si un campo esat vacio o no

       UPDATE C12
    	SET C12.Filler='12'	
    	FROM DBO.CONTABILIDAD C12
    	INNER JOIN OperacionActivaCambio OAC
    	ON C12.CodOperacion=OAC.CodOperacionActiva
    	WHERE 1=1
    	AND (SELECT FechaHoy from FechaCierre)=OAC.FechaCambio
    	AND C12.CodTransaccionConcepto like 'DES%'
    	AND C12.Filler=''

    quisiera saber como puedo hacer para no ponerlo asi ' '

    ademàs queria saber si varia si pongo algo asi

    '' ó

    '             '

    gracias.

    martes, 18 de septiembre de 2012 19:26

Respuestas

  • Puedes usar:

    UPDATE C12
    SET C12.Filler='12' 
    FROM DBO.CONTABILIDAD C12
    INNER JOIN OperacionActivaCambio OAC
    ON C12.CodOperacion=OAC.CodOperacionActiva
    WHERE 1=1
    AND (SELECT FechaHoy from FechaCierre)=OAC.FechaCambio
    AND C12.CodTransaccionConcepto like 'DES%'
    AND LTRIM(RTRIM((C12.Filler))=''

    Con eso evitarias el ' ' o el '     '.

    otra cosa e validar si es nulo, como le menciona Cristian... pero ojo, son dos cosas diferentes!

    Saludos desde Colombia!


    Fredy R.(Co)

    martes, 18 de septiembre de 2012 19:36

Todas las respuestas

  • Intenta así:

     UPDATE C12
    	SET C12.Filler='12'	
    	FROM DBO.CONTABILIDAD C12
    	INNER JOIN OperacionActivaCambio OAC
    	ON C12.CodOperacion=OAC.CodOperacionActiva
    	WHERE 1=1
    	AND (SELECT FechaHoy from FechaCierre)=OAC.FechaCambio
    	AND C12.CodTransaccionConcepto like 'DES%'
    	AND C12.Filler IS NULL

    Mira el IS NULL, también puedes preguntar si no esta nulo con IS NOT NULL


    Un saludo, Cristian Pérez

    martes, 18 de septiembre de 2012 19:28
  • Hola... puedes hacerle un LTRIM , RTRIM...

    UPDATE C12
    	SET C12.Filler='12'	
    	FROM DBO.CONTABILIDAD C12
    	INNER JOIN OperacionActivaCambio OAC
    	ON C12.CodOperacion=OAC.CodOperacionActiva
    	WHERE 1=1
    	AND (SELECT FechaHoy from FechaCierre)=OAC.FechaCambio
    	AND C12.CodTransaccionConcepto like 'DES%'
    	AND RTRIM(LTRIM(C12.Filler))=''


    o crear una función que TRIM() como en C#

    CREATE FUNCTION [dbo].[trim]
    (@cadena VARCHAR(1000))
    RETURNS VARCHAR(1000)
    AS
    BEGIN
    RETURN LTRIM(RTRIM(@cadena))
    END

    y después la utilizas 

    UPDATE C12
    	SET C12.Filler='12'	
    	FROM DBO.CONTABILIDAD C12
    	INNER JOIN OperacionActivaCambio OAC
    	ON C12.CodOperacion=OAC.CodOperacionActiva
    	WHERE 1=1
    	AND (SELECT FechaHoy from FechaCierre)=OAC.FechaCambio
    	AND C12.CodTransaccionConcepto like 'DES%'
    	AND dbo.trim(C12.Filler)=''

    :)


    Sergio Sánchez Arias

    martes, 18 de septiembre de 2012 19:32
  • Puedes usar:

    UPDATE C12
    SET C12.Filler='12' 
    FROM DBO.CONTABILIDAD C12
    INNER JOIN OperacionActivaCambio OAC
    ON C12.CodOperacion=OAC.CodOperacionActiva
    WHERE 1=1
    AND (SELECT FechaHoy from FechaCierre)=OAC.FechaCambio
    AND C12.CodTransaccionConcepto like 'DES%'
    AND LTRIM(RTRIM((C12.Filler))=''

    Con eso evitarias el ' ' o el '     '.

    otra cosa e validar si es nulo, como le menciona Cristian... pero ojo, son dos cosas diferentes!

    Saludos desde Colombia!


    Fredy R.(Co)

    martes, 18 de septiembre de 2012 19:36
  • si en efecto , no es un campo null es solo un campo vacio.
    martes, 18 de septiembre de 2012 22:49