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

Pisahkan fungsi dengan koma di SQL Server 2008

Saya telah mengubah nama fungsi sehingga tidak akan tumpang tindih dengan apa yang Split() fungsi benar-benar.

Ini kodenya:

CREATE FUNCTION dbo.GetColumnValue(
@String varchar(8000),
@Delimiter char(1),
@Column int = 1
)
returns varchar(8000)
as     
begin

declare @idx int     
declare @slice varchar(8000)     

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

declare @ColCnt int
    set @ColCnt = 1

while (@idx != 0)
begin     
    set @idx = charindex(@Delimiter,@String)     
    if @idx!=0 begin
        if (@ColCnt = @Column) return left(@String,@idx - 1)        

        set @ColCnt = @ColCnt + 1

    end

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

Dan inilah kegunaannya:

select dbo.GetColumnValue('Col1,Field2,VAlue3', ',', 3)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mitos Kinerja SQL Server yang Berbahaya dan Menyebar

  2. TSQL Pivot tanpa fungsi agregat

  3. Cara Mendapatkan Nilai Kolom Identitas tanpa Menyebutkan Nama Kolom Identitas di Pilih - Tutorial SQL Server / T-SQL Part 46

  4. Fungsi SQL Server ROUND():Untuk Apa dan Mengapa Anda Harus Peduli?

  5. Cara Mengembalikan Semua Batasan Kunci Asing yang Dinonaktifkan di SQL Server (Contoh T-SQL)