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

Làm thế nào để áp dụng 3 giá trị cho 1 hàng cho 3 hàng với mỗi giá trị?

Tôi sẽ không cung cấp cho bạn một giải pháp đầy đủ, nhưng nếu tôi cần dữ liệu phân chia như thế này, tôi sẽ cố gắng sử dụng sqlxml (bạn phải thử nó trên một số lượng lớn hàng để kiểm tra xem hiệu suất có phù hợp với bạn không):

declare @x table (prm int,iin varchar(20))

insert into @x values(1, 'A/B/C')
insert into @x values(3, 'D')
insert into @x values(2, 'R/G')

select
    x.prm, x.iin, T.C.value('.', 'nvarchar(max)') as oout
from @x as x
    outer apply (
        select cast('<d>' + replace(x.iin, '/', '</d><d>') + '</d>' as xml) as Data
    ) as D
    outer apply D.Data.nodes('d') as T(C)

xem sql fiddle demo để thử nó.




  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 bắt đầu ra của một DBCC-Statement trong một bảng tạm thời

  2. SQL server 2005 mất độ chính xác số

  3. sql server 2008 Đăng nhập không thành công cho người dùng 'NT AUTHORITY \ NETWORK SERVICE'

  4. Nhận chuỗi kết nối từ app.config trong c #

  5. Cách cài đặt sqlcmd &bcp trên SUSE