2008-10-04 17 views
56

मैं SQL सर्वर में थोड़ा सा प्रदर्शन करने की कोशिश नहीं कर रहा हूं। मैं इस तरह कुछ करने के लिए करना चाहते हैं:मैं SQL सर्वर में थोड़ा सा कैसे फ़्लिप करूं?

update foo 
set Sync = NOT @IsNew 

नोट: मैं इस लेखन शुरू किया और इससे पहले कि मैं खत्म कर अपने ही सवाल का जवाब में पता चला। मैं अभी भी समुदाय के साथ साझा करना चाहता था, क्योंकि दस्तावेज के इस टुकड़े में एमएसडीएन पर कमी थी (जब तक कि मैं इसे समुदाय सामग्री में भी शामिल नहीं करता)।

+0

मैं इस गलत मुझे लगता है कि पढ़ें ... वाला आपको बता दूँ कि आप एसक्यूएल सर्वर में एक Uturn नहीं कर सकता था ...: पी – Codewerks

+1

एक और लेख: http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/how-to-flip-a-bit-in-sql-server-by-using –

उत्तर

21

नहीं बिटवाइस: ~

बिटवाइस और: &

बिटवाइस या: |

बिटवाइस XOR:^

7

MSDN पर अभाव? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx

~: एक बिटवाइज़ एक पूर्णांक मूल्य पर तार्किक नहीं आपरेशन करता है। ~ bitwise ऑपरेटर अभिव्यक्ति के लिए थोड़ा सा तार्किक नहीं करता है, प्रत्येक बिट को बदले में ले जाता है। अगर अभिव्यक्ति का 0 का मान है, तो परिणाम सेट में बिट्स 1 पर सेट हैं; अन्यथा, परिणाम में बिट 0 के मान से साफ़ हो जाता है। दूसरे शब्दों में, किसी को शून्य में बदल दिया जाता है और शून्य को बदल दिया जाता है।

+0

डी ओह। मैंने बस थोड़ा सा ऑपरेटर और ~ यूनरी ऑपरेटरों के नीचे देखा :) –

2

पूर्णता के लिए के लिए:

SELECT b, 1 - b 
FROM 
    (SELECT cast(1 AS BIT) AS b 
    UNION ALL 
    SELECT cast(0 AS BIT) AS b) sampletable 
संबंधित मुद्दे