में विशिष्ट वर्चर के लिए लाइनों की संख्या प्राप्त करें एमएस एसक्यूएल सर्वर 2012 में मेरे पास एक वर्चुअल कॉलम वाला एक डेटाबेस है जिसमें कुछ पाठ है जिसमें लाइन ब्रेक भी शामिल हो सकते हैं।एमएस एसक्यूएल
बुनियादी उदाहरण:
--------------------
| ID | LinesOfText |
--------------------
| 1 | 1 |
--------------------
| 2 | 3 |
--------------------
| 3 | 2 |
--------------------
दुर्भाग्य से, वहाँ होना प्रतीत नहीं होता है:
CREATE TABLE Example
(
[ID] INT
, [Text] VARCHAR(100)
);
INSERT INTO Example ([ID], [Text])
VALUES
(1, 'This is a test'),
(2, 'This is another
test with
two line breaks'),
(3, 'This is a test
with one line break');
अब मैं प्रत्येक रिकॉर्ड, यानी, कुछ इस तरह के लिए पाठ की पंक्तियों प्राप्त करना चाहते हैं इस तरह के कुछ के लिए एक अंतर्निहित कार्यों। मेरा विचार Chr(10)+Chr(13)
घटनाओं को गिनना था और अंत में 1 जोड़ना था। लेकिन CHARINDEX
केवल एक स्ट्रिंग में पहली घटना पाता है।
कोई विचार यह कैसे हल करें?
अतिरिक्त जानकारी जो उपयोगी हो सकती है: मेरे डेटा की गहरी अंतर्दृष्टि देने के लिए, "टेक्स्ट" एक एक्सएमएल स्ट्रिंग से आ रहा है जिसमें लाइन ब्रेक, उदा।
...
<a>This is
another test
with two line breaks</a>
...
मैं CROSS APPLY XML.nodes(...
और XPath का उपयोग एक्सएमएल में सभी <a>
नोड्स खोजने के लिए। क्या इसे सीधे टी-एसक्यूएल एक्सएमएल कार्यों के साथ हल किया जा सकता है?
धन्यवाद, पहले से ही बदल दिया है। मैंने इसे sqlfiddle.com से कॉपी किया लेकिन मुझे पता नहीं था कि मैं अच्छे उत्तर के लिए MySQL मोड – Markus