2010-07-20 12 views
7

क्या टेक्स्ट स्ट्रिंग में शब्दों को गिनने का कोई तरीका है?शब्दों की गणना करने के लिए क्वेरी SQLite 3

मैं SQLite 3 का उपयोग कर रहा हूं और मैं एक प्रश्न लिखने की कोशिश कर रहा हूं जो पाठ के लंबे तारों का एक गुच्छा लेता है, और प्रत्येक में शब्दों की संख्या की गणना करता है।

मैं भी इस तरह के अनुच्छेद टैग के रूप में html टैग (या कैरेट के बीच कुछ भी) की उपेक्षा टैग को तोड़ने, आदि

तो जब मैं उपयुक्त स्तंभ से एक प्रश्न का चयन पाठ चलाने के लिए, मैं एक बड़ी शब्दों वाले पाठ प्राप्त करना चाहते हैं इसमें कुछ एचटीएमएल टैग के साथ आउटपुट, और मैं सिर्फ शब्दों को गिनना चाहता हूं।

ऐसा करने के लिए मैं एक प्रश्न कैसे लिख सकता हूं?

उत्तर

15

जहाँ तक मुझे पता के रूप में कोई रास्ता नहीं सीधे 3. लाइट एसक्यूएल में एक स्ट्रिंग में शब्दों की संख्या की गिनती करने के

आप लंबाई का उपयोग करें और जगह ले सकता है (मैं mysql और एमएस एसक्यूएल के साथ परिचित हूँ) है

SELECT length(@String) - length(replace(@String, ' ', '')) + 1 
0

पिछला उत्तर रिक्त कॉलम के लिए गलत है। तुम एक मामले जोड़ने की आवश्यकता होगी/जब/फिर अपने चयन करने के लिए बयान:

SELECT someStr, 
    CASE WHEN length(someStr) >= 1 
    THEN 
    (length(someStr) - length(replace(someStr), ' ', '')) + 1 
    ELSE 
    (length(someStr) - length(replace(someStr), ' ', '')) 
    END as NumOfWords 
FROM someTable; 

संपादित: स्तंभ 0 रिक्त स्थान है, लेकिन यह एक शब्द था, तो इसे गलत तरीके से रिपोर्ट करेंगे 0. हालत बदली गई अनुमति देने के लिए इसके लिए।

स्रोत: An Excel Trick I used to do the same thing

0

@Ziferius से जवाब एक छोटा सा सिंटैक्स त्रुटि है, के बाद एक एक काम एक, अपने आप के द्वारा परीक्षण किया है।

SELECT someStr, CASE WHEN length(someStr) >= 1 
THEN 
    (length(someStr) - length(replace(someStr, ' ', ''))) + 1 
ELSE 
    (length(someStr) - length(replace(someStr, ' ', ''))) 
END as NumOfWords FROM someTable; 
संबंधित मुद्दे