Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Fungsi split setara dalam T-SQL?

Coba ini

DECLARE @xml xml, @str varchar(100), @delimiter varchar(10)
SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
SELECT C.value('.', 'varchar(10)') as value FROM @xml.nodes('X') as X(C)

ATAU

DECLARE @str varchar(100), @delimiter varchar(10)
SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15'
SET @delimiter = ','
;WITH cte AS
(
    SELECT 0 a, 1 b
    UNION ALL
    SELECT b, CHARINDEX(@delimiter, @str, b) + LEN(@delimiter)
    FROM CTE
    WHERE b > a
)
SELECT SUBSTRING(@str, a,
CASE WHEN b > LEN(@delimiter) 
    THEN b - a - LEN(@delimiter) 
    ELSE LEN(@str) - a + 1 END) value      
FROM cte WHERE a > 0

Banyak lagi cara untuk melakukan hal yang sama di sini Bagaimana cara membagi string yang dibatasi koma?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara meneruskan array string dalam parameter SQL ke klausa IN dalam SQL

  2. Tetapkan Pasangan Kunci/Nilai dalam Konteks Sesi di SQL Server (sp_set_session_context)

  3. Tetapkan Profil Publik Default untuk Database Mail (SSMS)

  4. R DBI ODBC error:nanodbc/nanodbc.cpp:3110:07009:[Microsoft][ODBC Driver 13 untuk SQL Server]Indeks Deskriptor Tidak Valid

  5. Pernyataan SQL CASE:Apa itu dan apa cara terbaik untuk menggunakannya?