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

T-SQL:Đối lập với nối chuỗi - cách tách chuỗi thành nhiều bản ghi

Có rất nhiều giải pháp cho vấn đề này được ghi lại ở đây, bao gồm cả viên ngọc nhỏ này:

CREATE FUNCTION dbo.Split (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
    WITH Pieces(pn, start, stop) AS (
      SELECT 1, 1, CHARINDEX(@sep, @s)
      UNION ALL
      SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
      FROM Pieces
      WHERE stop > 0
    )
    SELECT pn,
      SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
    FROM Pieces
  )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 cách trả về số lượng hàng trong mỗi phân vùng trong SQL Server (T-SQL)

  2. Tôi có thể sử dụng Kiểu dữ liệu ngày trong máy chủ sql như thế nào?

  3. Tạo Hình ảnh Docker SQL Server tùy chỉnh trên đầu Hình ảnh chính thức

  4. Tham chiếu bí danh ở nơi khác trong danh sách CHỌN

  5. Tôi đã nâng cấp Trình điều khiển ODBC SQL Server và hiệu suất đã bị ảnh hưởng tiêu cực. Tôi có thể làm gì?