Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2012:रेगेक्स समूह निकालें

यह मानते हुए कि वास्तविक डेटा बताए गए उदाहरणों से अधिक जटिल नहीं है, यह RegEx का सहारा लिए बिना काम करना चाहिए:

DECLARE @posts TABLE
(
   post_id INT NOT NULL IDENTITY(1, 1),
   post_text NVARCHAR(4000) NOT NULL,
   body NVARCHAR(2048) NULL
);
INSERT INTO @posts (post_text, body) VALUES (N'first',
                                           N'Visit [Google](http://google.com)');
INSERT INTO @posts (post_text, body) VALUES (N'second',
                                           N'Get an [iPhone](http://www.apple.com)');
INSERT INTO @posts (post_text, body) VALUES (N'third',
                                           N'[Example](http://example.com)');
INSERT INTO @posts (post_text, body) VALUES (N'fourth',
                                           N'This is a message');
INSERT INTO @posts (post_text, body) VALUES (N'fifth',
                                           N'I like cookies (chocolate chip)');
INSERT INTO @posts (post_text, body) VALUES (N'sixth',
                                           N'[Frankie] says ''Relax''');
INSERT INTO @posts (post_text, body) VALUES (N'seventh',
                                           NULL);


SELECT p.post_text,
       SUBSTRING(
                  p.body,
                  CHARINDEX(N'](', p.body) + 2,
                  CHARINDEX(N')', p.body) - (CHARINDEX(N'](', p.body) + 2)
                ) AS [URL]
FROM   @posts p
WHERE  p.body like '%\[%](http%)%' ESCAPE '\';

आउटपुट:

post_text  URL
first      http://google.com
second     http://www.apple.com
third      http://example.com

पुनश्च:
यदि आप वास्तव में नियमित अभिव्यक्तियों का उपयोग करना चाहते हैं, वे केवल SQLCLR के माध्यम से ही किए जा सकते हैं। आप अपना खुद का लिख ​​सकते हैं या पहले से तैयार पुस्तकालयों को डाउनलोड कर सकते हैं। मैंने ऐसी ही एक लाइब्रेरी लिखी है, SQL# , जिसका एक निःशुल्क संस्करण है जिसमें RegEx फ़ंक्शन शामिल हैं। लेकिन उनका उपयोग केवल तभी किया जाना चाहिए जब कोई T-SQL समाधान नहीं मिल सकता है, जो अब तक यहाँ नहीं है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में थोक डेटा फ़ाइलें सम्मिलित करें

  2. SQL सर्वर में SQL सर्वर तालिका के लिए टेक्स्ट फ़ाइलों से सम्मिलित विवरण कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 106

  3. ALTER TABLE कथन परस्पर विरोधी है

  4. CAST(DATETIME AS DATE) WHERE क्लॉज पर

  5. प्रति माह नए ग्राहकों की गणना