sql >> Database teknologi >  >> RDS >> Sqlserver

Opdel funktion med komma i SQL Server 2008

Jeg har ændret funktionsnavnet, så det ikke overlapper det Split() funktion gør det virkelig.

Her er koden:

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

Og her er brugen:

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


  1. Kontrollerer for eksistensen af ​​indeks i PostgreSQL

  2. Sådan indsætter du json-output i mysql med node js

  3. ORDER BY-elementer skal vises i valglisten, hvis sætningen indeholder en UNION-, INTERSECT- eller EXCEPT-operator (SQL-server)

  4. Hvordan grupperer jeg efter uge i MySQL?