Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server 2012 :ekstrak grup Regex

Dengan asumsi data aktual tidak lebih kompleks daripada contoh yang disebutkan, ini akan berfungsi tanpa menggunakan 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 '\';

Keluaran:

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

PS:
Jika Anda benar-benar ingin menggunakan Ekspresi Reguler, mereka hanya dapat dilakukan melalui SQLCLR. Anda dapat menulis sendiri atau mengunduh pustaka yang sudah jadi. Saya menulis satu perpustakaan seperti itu, SQL# , yang memiliki versi Gratis yang menyertakan fungsi RegEx. Tapi itu hanya boleh digunakan jika solusi T-SQL tidak dapat ditemukan, yang sejauh ini tidak terjadi di sini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh SQL Server UNTUK JSON AUTO (T-SQL)

  2. SQL Server convert pilih kolom dan ubah menjadi string

  3. Haruskah setiap kunci asing SQL Server memiliki indeks yang cocok?

  4. Temukan Entitas Referensi di SQL Server:sys.dm_sql_referencing_entities()

  5. Tambahkan Akun Email Database ke Profil (T-SQL)