आप CASE
किसी प्रकार की अभिव्यक्ति का उपयोग करना चाहते हैं ।
SQL सर्वर में कोड इस तरह दिखेगा:
UPDATE TableName
SET gender = CASE WHEN gender = 'M' THEN 'W'
WHEN gender = 'W' THEN 'M'
ELSE gender END
संपादित करें: जैसा कि टिप्पणियों में कहा गया है (और कुछ अन्य उत्तरों में) यदि आप कथन पर WHERE क्लॉज लगाते हैं तो ELSE आवश्यक नहीं है।
UPDATE TableName
SET gender = CASE WHEN gender = 'M' THEN 'W'
WHEN gender = 'W' THEN 'M' END
WHERE gender IN ('M','W')
इससे अनावश्यक अपडेट से बचा जाता है। या तो मामले में महत्वपूर्ण बात यह याद रखना है कि एम एंड डब्ल्यू (उदाहरण के लिए NULL) के अलावा अन्य विकल्प भी हैं और आप गलत जानकारी नहीं डालना चाहते हैं। उदाहरण के लिए:
UPDATE TableName
SET gender = CASE WHEN gender = 'M' THEN 'W'
ELSE 'M' END
यह किसी भी NULL (या अन्य संभावित लिंग) को 'M' के रूप में प्रतिस्थापित करेगा जो गलत होगा।
कुछ अन्य विकल्प होंगे
/*Simple form of CASE rather than Searched form*/
UPDATE TableName
SET gender = CASE gender
WHEN 'M' THEN 'W'
WHEN 'W' THEN 'M'
END
WHERE gender IN ( 'M', 'W' );
और एक अधिक संक्षिप्त
/*For SQL Server 2012+*/
UPDATE TableName
SET gender = IIF(gender = 'M', 'W', 'M')
WHERE gender IN ( 'M', 'W' );