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

T-SQL:pisahkan dan gabungkan nilai yang dipisahkan koma

Anda akan ingin menggunakan fungsi split:

create FUNCTION [dbo].[Split](@String varchar(MAX), @Delimiter char(1))       
returns @temptable TABLE (items varchar(MAX))       
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;

Dan kemudian Anda dapat menanyakan data dengan cara berikut:

select items, count(items)
from table1 t1
cross apply dbo.split(t1.id, ',')
group by items

Lihat SQL Fiddle With Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan SQL Server Xml dengan beberapa ruang nama

  2. Hasilkan nomor acak yang tidak ada di tabel di server sql

  3. SQL Server:menggabungkan beberapa baris menjadi satu baris

  4. Kesalahan SQL Server 113:Tanda komentar akhir hilang '*/'

  5. Eksekusi kueri SSRS gagal untuk kumpulan data