2010-03-27 17 views
5

को बदलने मैं एक मेज जो एक स्तंभ प्रकार चार के प्रत्यक्ष कहा जाता है है (1)। यह मान या तो 'वाई' या 'एन' या न्यूल हैं। मैं एक दृश्य बना रहा हूं और मैं चाहता हूं कि मान को 0 या 1 बिट प्रकार में परिवर्तित किया जाए। अभी यह आईएनटी प्रकार है। मैं यह कार्य कैसे करूं? मैं कैसे सुनिश्चित स्तंभ प्रकार प्रकार बीआईटी की है बना सकते हैं:'Y' या 'एन' से थोड़ा

CASE WHEN Direct = 'Y' THEN (SELECT 1) 
WHEN Direct <> 'Y' THEN (SELECT 0) END AS DirectDebit 

संपादित करें:

के बाद कोड है?

+0

आप 0 करने के लिए परिवर्तित किया शून्य करना चाहते हैं? – dan04

उत्तर

7

.. यह आपको अपने बिट मिल जाएगा

CAST(CASE WHEN Direct = 'Y' THEN 1 ELSE 0 END AS BIT) AS DirectDebit 
4

अगर यह काम करता है देखें:

SELECT CASE WHEN Direct = 'Y' THEN 1 ELSE 0 END FROM YOURTABLE 
+0

वाह आप तेजी से हैं! मैं कैसे सुनिश्चित कर सकता हूं कि स्तंभ प्रकार बिट है? – Riz

+0

बिट (ट्रांजैक्ट-एसक्यूएल): एक पूर्णांक डेटा प्रकार जो 1, 0, या NULL का मान ले सकता है। इस तरह से मुझे लगता है कि उपर्युक्त क्वेरी से प्राप्त मान टाइप प्रकार के कॉलम में सही ढंग से फिट होते हैं। –

+1

केस से प्रतिक्रिया कास्टिंग/कनवर्ट किए बिना आप इस प्रकार के बारे में सुनिश्चित नहीं हो सकते कि यह वापस आएगा – CResults

1
SELECT CASE Direct 
WHEN 'Y' THEN '1' 
WHEN 'N' THEN '0' 
ELSE '0' 
END as DirectDebit 
FROM TableName 

... काम करना चाहिए।

संबंधित मुद्दे