Is there a opposite function to ISNULL in sql server? To do Is not null?

前端 未结 8 1705
悲哀的现实
悲哀的现实 2021-01-01 08:53

I have this code in my select statement

ISNULL(a.PolicySignedDateTime,aq.Amount) AS \'Signed Premium\',

But I want to see if \"a.PolicySign

8条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-01 09:15

    CREATE FUNCTION ISNUL (@DATA sql_variant) RETURNS BIT AS 
      BEGIN
      IF (@DATA IS NULL) RETURN 1;
      RETURN 0
    END
    
    SELECT dbo.ISNUL(NULL) -- 1
    SELECT dbo.ISNUL('123') -- 0
    SELECT dbo.ISNUL(123) -- 0
    SELECT dbo.ISNUL(123) ^ dbo.ISNUL(NULL), dbo.ISNUL('123') ^ dbo.ISNUL(NULL), dbo.ISNUL('123') ^ dbo.ISNUL(123), dbo.ISNUL(NULL) ^ dbo.ISNUL(NULL)  -- 1,1,0,0
    

    Or when XOR is in focus:

    CREATE FUNCTION XOR (@D1 sql_variant, @D2 sql_variant) RETURNS BIT AS 
    BEGIN
      IF (@D1 IS NULL AND @D2 IS NULL) RETURN 0;
      IF (@D1 IS NOT NULL AND @D2 IS NOT NULL) RETURN 0;
      RETURN 1
    END
    
    SELECT XOR(NULL,123), XOR('123',NULL), XOR(NULL,NULL), XOR('123',123)
    SELECT 'TRUE' where XOR(NULL,123) = 'true'
    SELECT 'FALSE' where XOR('123',123) = 'false'
    

提交回复
热议问题