मेरा मानना है कि आप अन्य उत्तरों को निम्नानुसार समायोजित करके "गैर-वांछित" कॉलम को अपडेट कर सकते हैं:
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 गलत (0) है
Update tblTest set ColX = 25 where ColConditional = 1
Update tblTest set ColY = 25 where ColConditional = 0
PS मूल प्रश्न या प्रश्न के किसी भी अपडेट में शून्य मामले का उल्लेख नहीं किया गया था, लेकिन जैसा कि आप देख सकते हैं, यह बहुत ही सरल उत्तर उन्हें वैसे भी संभालता है।