2012-07-05 13 views
13

मैं यह जानने का प्रयास कर रहा हूं कि एक SQL कथन कैसे लिखना है जो फ़ील्ड को पकड़ लेगा जहां स्ट्रिंग 12 वर्ण लंबा नहीं है। मैं केवल स्ट्रिंग को पकड़ना चाहता हूं अगर वे 10 अक्षर हैं।डीबी 2 टेक्स्ट स्ट्रिंग लम्बाई निर्धारित करें

डीबी 2 में यह कार्य क्या कर सकता है?

मुझे लगा कि यह ऐसा कुछ होगा, लेकिन मुझे इसके बारे में कुछ भी नहीं मिला।
select * from table where not length(fieldName, 12)

+0

प्रतीक्षा - आप _rows_ हड़पने के लिए चाहते हैं, जहां डेटा एक ** विशिष्ट ** स्तंभ ('फील्ड') शामिल हैं 10 वर्ण लंबा है, या आप ** अज्ञात हड़पने के लिए चाहते हो कर * * सभी पंक्तियों के लिए कॉलम, जहां कॉलम (या कॉलम का नाम) में सभी मान 10 वर्ण लंबा हैं? –

+0

मैं एक आईडी संख्या कॉलम से सभी पंक्तियों को पकड़ना चाहता हूं। कुछ आईडी संख्याएं 10 अंकों लंबी हैं, कुछ 9 हैं, और कुछ 12 हैं। मैं 12 अंकों की संख्या को छोड़कर सभी चाहता हूं। – Frantumn

+0

क्या कॉलम वास्तव में एक संख्यात्मक प्रकार है, या आप आईडी में संख्यात्मक वर्णों का उपयोग कर रहे हैं? यदि यह वास्तव में एक संख्यात्मक कॉलम है, तो बस सरल संख्यात्मक तुलना करें। यदि यह अंक युक्त स्ट्रिंग है, तो कृपया अग्रणी शून्य नहीं है ... –

उत्तर

21

यह तार के साथ रिकॉर्ड (FIELDNAME कॉलम में) है कि 10 वर्ण लंबे होते हैं हड़पने जाएगा:

select * from table where length(fieldName)=10 
+0

यह भी जांचें: http://www.ibm.com/developerworks/data/library/techarticle/dm-0705nair/ - स्ट्रिंग लंबाई निर्धारित करना कभी-कभी मुश्किल हो सकता है। –

22

समान प्रश्न DB2 - find and compare the lentgh of the value in a table field से - के बाद से लंबाई स्तंभ परिभाषा की लंबाई वापस आ जाएगी RTRIM जोड़ें। यह सही होना चाहिए:

select * from table where length(RTRIM(fieldName))=10 
+1

यह चाल है! यह ओपी की तरह स्ट्रिंग की वास्तविक लंबाई प्राप्त करता है और कॉलम की लंबाई नहीं। –

+1

यह उत्तर सही है – numsu

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