Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

T-SQL:Обратно на конкатенацията на низове - как да разделите низ на множество записи

Има голямо разнообразие от решения на този проблем, документирани тук, включително този малък скъпоценен камък:

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. Грешка при аритметично препълване при преобразуване на израза в тип данни дата и час. (докато показва дата и час..)

  2. Как NULLIF() работи в SQL Server

  3. Как да получите списък с таблици без ограничение на първичния ключ в база данни на SQL Server - SQL Server / T-SQL Урок, част 58

  4. Как да промените поредния номер на пощенски акаунт в база данни в профил в SQL Server (T-SQL)

  5. MAX срещу Топ 1 - кое е по-добро?