sql >> Databasteknik >  >> RDS >> Sqlserver

Dela kommaavgränsad sträng och infoga i en tabell (int)

Bättre använd XML för detta,

Declare @Var nvarchar(MAX)

Set @Var ='188,189,190,191,192,193,194'

DECLARE @XML AS XML

DECLARE @Delimiter AS CHAR(1) =','

SET @XML = CAST(('<X>'+REPLACE(@Var,@Delimiter ,'</X><X>')+'</X>') AS XML)

DECLARE @temp TABLE (ID INT)

INSERT INTO @temp

SELECT N.value('.', 'INT') AS ID FROM @XML.nodes('X') AS T(N)

SELECT * FROM @temp


  1. Få skillnaden mellan två datum både i månader och dagar i sql

  2. Hur ställer man in en länkad server till en Oracle-databas på SQL 2000/2005?

  3. SQLite - Ändra en tabell

  4. Hur dyra är implicita konverteringar på kolumnsidan?