Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách trích xuất nhiều chuỗi từ các hàng đơn trong SQL Server

Bạn có thể sử dụng một cách đệ quy cte để loại bỏ các chuỗi.

declare @T table (id int, [text] nvarchar(max))

insert into @T values (1, 'Peter ([email protected]) and Marta ([email protected]) are doing fine.')
insert into @T values (2, 'Nothing special here')
insert into @T values (3, 'Another email address ([email protected])')

;with cte([text], email)
as
(
    select
        right([text], len([text]) - charindex(')', [text], 0)),
        substring([text], charindex('(', [text], 0) + 1, charindex(')', [text], 0) - charindex('(', [text], 0) - 1) 
    from @T
    where charindex('(', [text], 0) > 0
    union all
    select
        right([text], len([text]) - charindex(')', [text], 0)),
        substring([text], charindex('(', [text], 0) + 1, charindex(')', [text], 0) - charindex('(', [text], 0) - 1) 
    from cte
    where charindex('(', [text], 0) > 0
)
select email
from cte

Kết quả

email
[email protected]
[email protected]
[email protected]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo một hàm trong SQL Server

  2. Chuyển đổi trong một phân vùng trong SQL Server (T-SQL)

  3. Không thể kết nối pyODBC với SQL Server 2008 Express R2

  4. SQL - Xoay nhiều cột mà không có Aggregrates

  5. .NET 4:Cách định cấu hình tệp EDMX trong lắp ráp khác trong Web.Config