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

Chuỗi phân tách T-SQL

Tôi đã sử dụng SQL này trước đây có thể phù hợp với bạn:-

CREATE FUNCTION dbo.splitstring ( @stringToSplit VARCHAR(MAX) )
RETURNS
 @returnList TABLE ([Name] [nvarchar] (500))
AS
BEGIN

 DECLARE @name NVARCHAR(255)
 DECLARE @pos INT

 WHILE CHARINDEX(',', @stringToSplit) > 0
 BEGIN
  SELECT @pos  = CHARINDEX(',', @stringToSplit)  
  SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1)

  INSERT INTO @returnList 
  SELECT @name

  SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)[email protected])
 END

 INSERT INTO @returnList
 SELECT @stringToSplit

 RETURN
END

và sử dụng nó:-

SELECT * FROM dbo.splitstring('91,12,65,78,56,789')


  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àm cách nào để sao lưu cơ sở dữ liệu SQL Server từ xa vào ổ đĩa cục bộ?

  2. Các loại con trỏ máy chủ SQL - Con trỏ tĩnh trong SQL Server là gì | Hướng dẫn sử dụng SQL Server / TSQL

  3. Cách tạo một thủ tục được lưu trữ trong SQL Server

  4. SqlBulkCopy từ một danh sách <>

  5. Cách chèn dữ liệu vào SQL Server