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

Memisahkan string yang sangat besar dengan pembatas khusus?

Sudahlah. Untuk berjaga-jaga jika orang lain menghadapi masalah yang sama, berikut ini dari di sini bekerja sempurna pada string besar:

CREATE FUNCTION dbo.SplitLarge(@String varchar(8000), @Delimiter char(1))     
returns @temptable TABLE (items varchar(8000))     
as     
begin     
    declare @idx int     
    declare @slice varchar(8000)     

    select @idx = 1     
        if len(@String)<1 or @String is null  return     

    while @idx!= 0     
    begin     
        set @idx = charindex(@Delimiter,@String)     
        if @idx!=0     
            set @slice = left(@String,@idx - 1)     
        else     
            set @slice = @String     

        if(len(@slice)>0)
            insert into @temptable(Items) values(@slice)     

        set @String = right(@String,len(@String) - @idx)     
        if len(@String) = 0 break     
    end 
return     
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabel SQL Server:apa perbedaan antara @, # dan ##?

  2. Kesalahan SQL Server 4104:Pengidentifikasi multi-bagian tidak dapat diikat.

  3. Melaporkan Data Kinerja SQLDIAG melalui Alat Utilitas RML | Pemecahan Masalah Kinerja SQL Server -7

  4. SQL Server - Kapan menggunakan Indeks Clustered vs non-Clustered?

  5. Kueri tabel yang sama rekursif di SQL Server 2008