Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để tách một chuỗi trong T-SQL?

Sử dụng một hàm có giá trị bảng như thế này,

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

và lấy biến của bạn và sử dụng hàm này như thế này,

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu mảng byte trong máy chủ sql

  2. SQL Server PDF Full-Text Search không hoạt động trên FileStream PDF File

  3. Sự khác biệt giữa giao dịch ngầm và rõ ràng

  4. Cách lấy số đúng / sai từ một trường bit thành hai cột riêng biệt

  5. Cách trả lại tất cả các ràng buộc kiểm tra bị vô hiệu hóa trong SQL Server (Ví dụ T-SQL)