SSMS
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> SSMS

Tách các giá trị được phân tách bằng dấu phẩy

Bạn có thể tạo một UDF do người dùng xác định như hình bên dưới. Sau đó, chỉ cần chuyển vào danh sách được phân tách bằng dấu phẩy từ một truy vấn khác và nó sẽ trả về một bảng với mỗi giá trị trong một hàng riêng biệt.

CREATE FUNCTION [dbo].[fnSplitStringAsTable] 
(
    @inputString varchar(MAX),
    @delimiter char(1) = ','
)
RETURNS 
@Result TABLE 
(
    Value varchar(MAX)
)
AS
BEGIN
    DECLARE @chIndex int
    DECLARE @item varchar(100)

    -- While there are more delimiters...
    WHILE CHARINDEX(@delimiter, @inputString, 0) <> 0
        BEGIN
            -- Get the index of the first delimiter.
            SET @chIndex = CHARINDEX(@delimiter, @inputString, 0)

            -- Get all of the characters prior to the delimiter and insert the string into the table.
            SELECT @item = SUBSTRING(@inputString, 1, @chIndex - 1)

            IF LEN(@item) > 0
                BEGIN
                    INSERT INTO @Result(Value)
                    VALUES (@item)
                END

            -- Get the remainder of the string.
            SELECT @inputString = SUBSTRING(@inputString, @chIndex + 1, LEN(@inputString))
        END

    -- If there are still characters remaining in the string, insert them into the table.
    IF LEN(@inputString) > 0
        BEGIN
            INSERT INTO @Result(Value)
            VALUES (@inputString)
        END

    RETURN 
END


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Không thể kết nối với Plesk v12 SQL Server từ xa từ SQL Server Management Studio

  2. Làm cách nào để thực thi một tập hợp các tệp .SQL từ bên trong SSMS?

  3. Hộp thoại đăng nhập SQL Server Management Studio bị thiếu

  4. Chuyển đổi được yêu cầu không được hỗ trợ bằng máy chủ được liên kết và ODBC

  5. Tất cả các phiên SQL Server đó từ đâu?