小编Car*_*los的帖子

NULLIF 返回现有值的第一个字符而不是整个值

据我了解,在下面的查询中,如果第一个值NULLIF是空字符串,则应保留现有列的值。在我的实际查询中,这些是变量,但我在查询中放置了实际值以使其更短。

ISNULL(NULLIF(N'', N''), Pwd) => ISNULL(NULL, Pwd) => Pwd

相反,发生的情况是第一个字符被设置为值。运行下面的查询并留意 Pwd 的值。

DECLARE @tblHello TABLE (
    UserID INT NOT NULL IDENTITY(1,1),
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    CompanyName VARCHAR(80),
    Pwd VARCHAR(100) NOT NULL,  
    Email VARCHAR(100) NOT NULL,
    CreatedDate DATE NOT NULL DEFAULT SYSUTCDATETIME(),
    LastUpdated DATE NOT NULL DEFAULT SYSUTCDATETIME(), 
    isActive BIT NOT NULL DEFAULT(1)
)

INSERT INTO @tblHello (FirstName, LastName, CompanyName, Pwd, Email)
VALUES ('First', 'Last', 'Testing this', 'This is the password', 'test@email.com')

UPDATE @tblHello
SET
    Email = ISNULL(NULLIF(N'testuser58@email.com', ''), …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

3
推荐指数
1
解决办法
473
查看次数

标签 统计

sql ×1

sql-server ×1