Select column, if blank select from another

前端 未结 4 1400
谎友^
谎友^ 2020-12-24 11:29

How does one detect whether a field is blank (not null) and then select another field if it is?

What I really need is a IsBlank function that works the same as IsNul

相关标签:
4条回答
  • 2020-12-24 11:52

    EDIT: You can't use IF() in mssql.

    Use an IF statement in the SELECT portion of your SQL:

    SELECT IF(field1 != '', field1, field2) AS myfield FROM ...
    
    0 讨论(0)
  • 2020-12-24 11:59

    You could always write an isBlank() function, something like

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE FUNCTION isBlank
    (
        @CheckExpression varchar, @ReplacementExpression varchar
    )
    RETURNS varchar
    AS
    BEGIN
        IF @CheckExpression IS NOT NULL
        BEGIN
            IF @CheckExpression='' or LEN(@CheckExpression) = 0
            RETURN @ReplacementExpression
        ELSE
            RETURN @CheckExpression
        END
    
        RETURN @ReplacementExpression
    END
    GO
    
    0 讨论(0)
  • 2020-12-24 12:01

    How about combining COALESCE and NULLIF.

    SELECT COALESCE(NULLIF(SomeColumn,''), ReplacementColumn)
    FROM SomeTable
    
    0 讨论(0)
  • 2020-12-24 12:01

    You can use a CASE statement for this

    select 
    Case WHEN Column1 = '' OR Column1 IS NULL OR LEN (TRIM (Column1))  = 0 
         THEN Column2 
         ELSE Column1 END as ColumnName
    from TableName
    
    0 讨论(0)
提交回复
热议问题