Я вважаю, що ви можете опустити оновлення стовпців "небажаних", скоригувавши інші відповіді так:
update table set
columnx = (case when condition1 then 25 end),
columny = (case when condition2 then 25 end)
Як я розумію, це оновиться лише тоді, коли умова буде виконана.
Прочитавши всі коментарі, це найефективніше:
Update table set ColumnX = 25 where Condition1
Update table set ColumnY = 25 where Condition1
Прикладна таблиця:
CREATE TABLE [dbo].[tblTest](
[ColX] [int] NULL,
[ColY] [int] NULL,
[ColConditional] [bit] NULL,
[id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
вибіркові дані:
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 0)
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 0)
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 1)
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 1)
Insert into tblTest (ColX, ColY, ColConditional) values (1, null, null)
Insert into tblTest (ColX, ColY, ColConditional) values (2, null, null)
Insert into tblTest (ColX, ColY, ColConditional) values (null, 1, null)
Insert into tblTest (ColX, ColY, ColConditional) values (null, 2, null)
тепер я припускаю, що ви можете написати умовний, що обробляє нулі. Для мого прикладу, я припускаю, що ви написали такий умовний варіант, який оцінює значення True, False або Null. Якщо вам потрібна допомога в цьому, дайте мені знати, і я зроблю все можливе.
Тепер запуск цих двох рядків коду недійсний змінює X на 25, якщо і тільки якщо ColConditional є True (1) і Y до 25, якщо і тільки якщо ColConditional є False (0)
Update tblTest set ColX = 25 where ColConditional = 1
Update tblTest set ColY = 25 where ColConditional = 0
PS Нульовий випадок ніколи не згадувався в оригінальному запитанні чи будь-яких оновленнях питання, але, як ви бачите, ця дуже проста відповідь все одно справляється з ними.