Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dzielenie bardzo dużego ciągu z niestandardowym ogranicznikiem?

Uwaga. Na wypadek, gdyby ktoś inny stanął w obliczu tego samego problemu, poniżej:tutaj działa idealnie na dużych strunach:

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. Transakcje powinny być obsługiwane w .NET czy SQL Server?

  2. Nie można załadować sterownika:com.microsoft.sqlserver.jdbc.SQLServerDriver weblogic 10g

  3. Jaki jest odpowiednik LOCK_ESCALATION =TABLE w SQL Server 2005?

  4. Wielowątkowa aplikacja C# z wywołaniami bazy danych SQL Server

  5. Uprawnienia dla PSExec uruchamiane z zadania SQL