据我了解,在下面的查询中,如果第一个值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)