SQL Case WHERE 条件,如果条件通过检查值是否不为空

SQL Case WHERE condition, if condition passes check if value is not null

我不知道如何添加最后一个条件。 这是动态代码+游标的一部分。游标由 table 列的列表组成。我正在比较结构相同的两个 table 中的值,在 PK 上加入它们,并在值不匹配时一次检查一列。 我最后一个条件需要的是:

    DECLARE @columnName CHAR(10) = 'untcode';
    
    SELECT MC.@columnName, TMC.@columnName 
    FROM dbo.firstable AS TMC
    INNER JOIN dbo.secondtable AS MC
        ON MC.ID = TMC.ID
        AND MC.Code = TMC.Code        
    WHERE MC.ID = 123
    AND TMC.@columnName<> MC.@columnName
    --How do I add this??
    AND TMC.@columnName CASE 
        WHEN @columnName='untCode' THEN not null 
        ELSE --What???
        END ;

感谢帮助

如你所说:

    --How do I add this??
    AND NOT (@columnName='untCode' AND TMC.untCode is NULL)

或稍作改动:

    --How do I add this??
    AND (@columnName<>'untCode' OR TMC.untCode is NOT NULL)

但是你应该像@Larnu 说的那样更正 AND TMC.@columnName<> MC.@columnName;你是说 AND TMC.columnName=MC.columnName`?