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

Kueri yang efisien untuk membagi kolom yang dibatasi menjadi tabel terpisah

Buat fungsi terpisah:

CREATE FUNCTION dbo.SplitStrings(@List NVARCHAR(MAX))
RETURNS TABLE
AS
   RETURN ( SELECT Item FROM
       ( SELECT Item = x.i.value('(./text())[1]', 'nvarchar(max)')
         FROM ( SELECT [XML] = CONVERT(XML, '<i>'
         + REPLACE(@List, '.', '</i><i>') + '</i>').query('.')
           ) AS a CROSS APPLY [XML].nodes('i') AS x(i) ) AS y
       WHERE Item IS NOT NULL
   );
GO

Kemudian singkirkan semua kursor dan pengulangan omong kosong dan lakukan ini:

INSERT dbo.mrhierlookup
(
  heiraui,
  aui
)
SELECT s.Item, m.aui
  FROM dbo.mrhier3 AS m
  CROSS APPLY dbo.SplitStrings(m.ptr) AS s
GROUP BY s.Item, m.aui;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. grup sql hanya dengan baris yang berurutan

  2. Buat Prosedur Tersimpan di SQL Server 2017

  3. Bagaimana menemukan port untuk MS SQL Server 2008?

  4. Apa yang harus dilakukan dari tipe tunggu ASYNC NETWORK IO?

  5. Menginstal Driver Microsoft SQL Server JDBC di Integrasi Data Pentaho dan alat BA Server