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

sql-server-2005:Làm thế nào để thực hiện phân tách trên một biến chuỗi được phân tách bằng dấu sổ đứng?

Đây là một cách hữu ích và đơn giản để truy vấn một chuỗi được phân tách như thể nó là một bảng.

Lấy từ: http://www.mindsdoor.net/SQLTsql/ParseCSVString.html

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_ParseCSVString]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fn_ParseCSVString]
GO


create function fn_ParseCSVString
(
@CSVString  varchar(8000) ,
@Delimiter  varchar(10)
)
returns @tbl table (s varchar(1000))
as
/*
select * from dbo.fn_ParseCSVString ('qwe,c,rew,c,wer', ',c,')
*/
begin
declare @i int ,
    @j int
    select  @i = 1
    while @i <= len(@CSVString)
    begin
        select  @j = charindex(@Delimiter, @CSVString, @i)
        if @j = 0
        begin
            select  @j = len(@CSVString) + 1
        end
        insert  @tbl select substring(@CSVString, @i, @j - @i)
        select  @i = @j + len(@Delimiter)
    end
    return
end


GO



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xóa tăng tự động khỏi bảng trong máy chủ sql 2012

  2. Cách tránh tình trạng chạy đua cơ sở dữ liệu khi tăng PK của hàng mới theo cách thủ công

  3. Làm cách nào để biết biến VARCHAR có chứa chuỗi con hay không?

  4. Ví dụ trong cuộc sống thực, khi nào sử dụng ÁP DỤNG NGOÀI / CHÉO trong SQL

  5. Làm cách nào để cập nhật n hàng trong bảng?