sql >> データベース >  >> RDS >> Sqlserver

T-SQLで文字列を分割するには?

    次のようなテーブル値関数を使用します。

    CREATE FUNCTION Splitfn(@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
    

    変数を取得し、この関数を次のように使用します。

    SELECT i.items FROM dbo.Splitfn(@a,'|') AS i
    


    1. PythonとMySQLdbを使用してmysqlデータベースのテーブル名を取得するにはどうすればよいですか?

    2. SQL - パーセンテージ カウント

    3. CodeIgniterでMSSQLとMySQLを使用する

    4. 年の配列を年の範囲として返す